- 16
- 0
- 约1.12万字
- 约 13页
- 2017-05-22 发布于重庆
- 举报
D语言使用说明
D语言使用说明
一.概述
D语言编译器可以把一个多任务并发执行的程序翻译成可以在单任务操作系统下运行的消息驱动程序,一个典型的应用例子就是编写基本呼叫接续处理程序。D语言系统由两个可执行文件组成:编译器 SDL.EXE 和链接器 SLINK.EXE。用D语言编程的大致流程如下:
使用该系统的步骤:
1. 用编辑器编辑源文件。源文件的扩展名最好取为 .D,它是 SDL.EXE的默认扩展名。
2. 运行 SDL.EXE 编译源文件,生成中间文件。中间文件的基名与源文件的基名相同,扩展名是 .RES。命令行是:
CSDL 文件名
若文件名的扩展名若是 .D 可以省略。例:
CSDL blocka
就编译文件 BLOCKA.D,生成中间文件 BLOCKA.RES。
SDL 命令一次可以编译多个源文件,这些源文件的文件名依次写在命令行中,如:
CSDL MAINBK SUBBK1 SUBBK2 COMMBK
上述命令就使D编译器依次编译 MAINBK.D SUBBK1.D SUBBK2.D 和 COMMBK.D 文件,生成各自相应的 .RES 中间文件。
3. (该步骤可选)
用编辑器编辑翻译控制文件。翻译控制文件的基名最好与源文件基名同相,扩展名最好取 .CFG,它是 SLINK.EXE 的默认扩展名。翻译控制文件的各个命令的描述见后文。
4. 运行 SLINK.EXE,把若干中间文件(.RES文件)链接在一起,在翻译控制文件的配合下生成C语言的源程序。生成的C源文件名的基名是源文件名的基名再跟上一个数字序号。命令行是:
CSLINK 开关 中间文件名1 中间文件名2 …… -c控制文件名
若中间文件的扩展名是 .RES 则可以省略。
可使用的开关如下:
-L+ 显示输出总四元式表(缺省状态是关,用户不要使用)
-R+ 显示输出分四元式表(缺省状态是关,用户不要使用)
-O+ 进行局部优化(缺省状态是开)
-G+ 进行全局优化(缺省状态是关)
最后的 -c 开关可以省略。它是用来指定翻译控制文件的。若使用了该开关,翻译控制文件就是指定的文件,否则就使用基名与源文件基名相同的翻译控制文件。若磁盘上没有翻译控制文件,SLINK 就使用默认的翻译参数。下面是一些链接命令的例子:
CSLINK MAINBK SUBBK1 SUBBK2 COMMBK
该命令把四个中间文件链接在一起,使用翻译控制文件 MAINBK.CFG,生成的C源文件名是 MAINBK0.C。
CSLINK MAINBK SUBBK1 SUBBK2 COMMBK -cMYCTL
该命令把四个中间文件链接在一起,使用翻译控制文件 MYCTL.CFG,
生成的C源文件名是 MAINBK0.C。
5. 编写总控程序。总控程序是一个C程序,它的主要任务是收集消息,调用消息处理程序。用类C表示就是:
main()
{
初始化;
令S是消息缓冲区;
把S置空;
for(;;)
{
收集消息,把它们放入消息缓冲区S中;
if (S不空)
{
从S中取出一条消息;
调用该消息的处理程序;
}
}
}
当然,这个总控程序可能还要包含D程序中所使用的C函数。
6. 用C编译系统编译链接所有的C程序,生成一个可执行文件。
二.源文件的格式与语法
源文件的格式与C源文件格式大致相同,是“自由格式”。编译系统区分大小写,即对大小写敏感。
1.message 语句
该语句用来定义系统的消息。格式:
message { 消息名1,消息名2,……,消息名n};
消息名是一个标识符,长度不限。但是,所有的消息名都要成为将来生成的C源程序中消息处理子程序名的一部分,建议不要太长,不要超过30个字符。
message {HOOK_OFF,HOOK_ON,NUMBER};
上面的语句定义三条消息:HOOK_OFF(摘机) HOOK_ON(挂机) NUMBER(号码)
message语句是消息定义语句,它一般出现在所有函数的前面,最好写在文件的开始部位。每个D文件最好只含一条message语句。若一个程序由若干D文件组成,每个D文件都可以有message语句,那么系统所含的消息集就是这些D文件所含消息的并集。D链接器会自动实施这种合并运算。如在文件BLOCKA.D中定义了消息message {A,B},在文件BLOCKB.D中定
原创力文档

文档评论(0)