编译原理课程设计报告---PL0编译程序改进及完善
-
资源ID:1423989
资源大小:4.43MB
全文页数:24页
- 资源格式: DOC
下载积分:100金币
快捷下载

账号登录下载
三方登录下载:
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
|
编译原理课程设计报告---PL0编译程序改进及完善
1、 编译原理课程设计编译原理课程设计 题目: 题目: PL/0 编译程序改进及完善编译程序改进及完善 设计题目设计题目: PL/0 编译程序改进及完善。 设计目的:设计目的: 阅读研究, 改进设计和调试一个简单的编译程序。 加深对编译理论和过程的 了解。 设计要求:设计要求: 1.有选择的对 PL/0 编译源程序补充,完善. 2. 设 计 编 译 典 型 的 运 行 实 例 , 以 便 反 应 出 自 己 作 出 改 进 后 的 编 具有的功能。 设计思想设计思想: PL/0 语言可以看成 PASCAL 语言的子集, 它的编译程序是一个编译解 释执行系统。PL/0 的目标程序为假想栈式计算机的汇
2、编语言,与具体计算 机无关。 PL/0的编译程序和目标程序的解释执行程序都是用PASCAL语言书写 的,因此 PL/0 语言可在配备 PASCAL 语言的任何机器上实现 。其编译过 程采用一趟扫描方式,以语法分析程序为核心,词法分析和代码生成程序 都作为一个独立的过程,当语法分析需要读单词时就调用词法分析程序, 而当语法分析正确需要生成相应的目标代码时,则调用代码生成程序。 用表格管理程序建立变量、常量和过程表示符的说明与引用之间的信 息联系。 当源程序编译正确时,PL/0 编译程序自动调用解释执行程序,对目标 代码进行解释执行,并按用户程序的要求输入数据和输出运行结果。 主要变量说明主要变量
3、说明: /*变量说明*/ FILE* fas; /*输出名字表*/ FILE* fa; /*输出虚拟机代码*/ FILE* fa1; /*输出源文件及其各行对应的首地址 */ FILE* fa2; /*输出结果*/ bool listswitch; /*显示虚拟机代码与否*/ bool tableswitch; /*显示名字表与否*/ char ch; /*获取字符的缓冲区,getch 使用*/ enum symbol sym; /*当前的符号*/ char idal+1; /*当前 ident,多出的一个字节用于存放 0*/ int num; /*当前 number*/ int cc,ll;
4、 /*getch使用的计数器, cc 表示当前字符 (ch) 的位置*/ int cx; /*虚拟机代码指针,取值范围0, cxmax-1*/ char line81; /*读取行缓冲区*/ char aal+1; /*临时符号,多出的一个字节用于存放 0*/ struct instruction codecxmax; /*存放虚拟机代码的数组*/ char wordnorwal; /*保留字*/ enum symbol wsymnorw; /*保留字对应的符号值*/ enum symbol ssym256; /*单字符的符号值*/ char mnemonicfctnum5; /*虚拟机代码指令名称*/ bool declbegsyssymnum; /*表示声明开始的符号集合*/ bool statbegsyssymnum; /*表示语句开始的符号集合*/ bool facbegsys