电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

编译原理课程设计报告大学论文

编译原理课程设计报告大学论文_第1页
1/24
编译原理课程设计报告大学论文_第2页
2/24
编译原理课程设计报告大学论文_第3页
3/24
燕山大学《编译原理课程设计》题目:《PL/0 编译程序改进及完善》姓名:简越班级:06 级计算机应用 3 班学号:060104010084日期:2025 年 7 月 15 日设计题目:PL/0 编译程序改进及完善。设计目的:阅读讨论,改进设计和调试一个简单的编译程序。加深对编译理论和过程的了解。设计要求:1.有选择的对 PL/0 编译源程序补充,完善.2. 设 计 编 译 典 型 的 运 行 实 例 , 以 便 反 应 出 自 己 作 出 改 进 后 的 编 具有的功能。设计思想:PL/0 语言可以看成 PASCAL 语言的子集,它的编译程序是一个编译解释执行系统。PL/0 的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。 PL/0 的编译程序和目标程序的解释执行程序都是用 PASCAL 语言书写的,因此 PL/0 语言可在配备 PASCAL 语言的任何机器上实现 。其编译过程采纳一趟扫描方式,以语法分析程序为核心,词法分析和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就调用词法分析程序,而当语法分析正确需要生成相应的目标代码时,则调用代码生成程序。 用表格管理程序建立变量、常量和过程表示符的说明与引用之间的信息联系。 当源程序编译正确时,PL/0 编译程序自动调用解释执行程序,对目标代码进行解释执行,并按用户程序的要求输入数据和输出运行结果。 主要变量说明:/*变量说明*/FILE* fas;/*输出名字表*/FILE* fa;/*输出虚拟机代码*/FILE* fa1;/*输出源文件及其各行对应的首地址*/FILE* fa2;/*输出结果*/bool listswitch;/*显示虚拟机代码与否*/bool tableswitch;/*显示名字表与否*/char ch;/*猎取字符的缓冲区,getch 使用*/enum symbol sym;/*当前的符号*/char id[al+1];/*当前 ident,多出的一个字节用于存放 0*/int num;/*当前 number*/int cc,ll;/*getch 使用的计数器,cc 表示当前字符(ch)的位置*/int cx;/* 虚 拟 机 代 码 指 针 , 取 值 范 围[0,cxmax-1]*/char line[81];/*读取行缓冲区*/char a[al+1];/*临时符号,多出的一个字节用于存放 0*/struct instruction code[cxmax];/*存放虚拟机代码的数组*/char word[norw][al];/*保留字*/enum symbol wsym[norw];/*保留字对应的符号值*/enum symbol ssym[256];/*单字符的符号值*/char mnemonic[fctnum][5];/*虚拟机代码指令名称*/bool declbegsys[symnum];/*表示声明开始的符号集合*/bool statbegsys...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

编译原理课程设计报告大学论文

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部