2022年基于算符优先分析方法的语法制导翻译程序设计编译课程设计报告书.docx
《2022年基于算符优先分析方法的语法制导翻译程序设计编译课程设计报告书.docx》由会员分享,可在线阅读,更多相关《2022年基于算符优先分析方法的语法制导翻译程序设计编译课程设计报告书.docx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源课程设计报告 2021 - 2021年度第 1学期名称:编译技术课程设计B题目: 词法分析器设计算符优先分析程序设计基于算符优先分析方法的语法制导翻译程序设计院系:运算机系班级:设计周数:计科 10011 周成 绩:日期: 2021 年 1 月 11 日欢迎下载精品学习资源编译技术课程设计 B任 务 书一、 目的与要求1. 词法分析器设计的目的与要求1.1 词法分析器设计的试验目的本试验是为运算机科学与技术专业、网络工程专业、信息安全专业的同学在学习编译技术课程后,为加深对课堂教案内容的懂得,培育解决实际问题才能而设置的实践环节;通过这个实 验,使同学应用编译程序设计的原理和技术设
2、计出词法分析器,明白扫描器的组成结构,不同种类单词的识别方法;能使得同学在设计和调试编译程序的才能方面有所提高;为将来设计、分析编译程序打下良好的基础;1.2 词法分析器设计的试验要求设计一个扫描器,该扫描器是一个子程序,其输入是源程序字符串,每调用一次识别并输出一个单词符号;为了防止超前搜寻,提高运行效率,简化扫描器的设计,假设该程序设计语言中,基本字(也称关键词)不能做一般标识符用,假如基本字、标识符和常数之间没有确定的运算符或界符作间隔,就用空白作间隔;单词符号及其内部表示如表1-1所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成;单词符号的内部表示,即单
3、词的输出形式为二元式:(种别编码,单词的属性值);表 1-1单词符号及其内部表示单词符号种别编码单词的属性值BEGIN1IF2THEN3ELSE4END5欢迎下载精品学习资源标识符6整型常数7+8*9*10(11)12在名字表中的地址十进制整数欢迎下载精品学习资源2. 算符优先分析程序设计的目的和要求欢迎下载精品学习资源2.1 算符优先分析程序设计的试验目的本试验是为运算机科学与技术等专业的同学在学习编译技术课程后,为加深对课堂教案内 容的懂得,培育解决实际问题才能而设置的实践环节;通过这个试验,使同学应用编译程序设计的 原理和技术 , 设计、编写和调试算符优先分析程序,明白算符优先分析程序的
4、组成结构,把握实现通用算符优先分析算法的方法;能使得同学在设计和调试编译程序的才能方面有所提高;为将来设计、分析编译程序打下良好的基础;2.2 算符优先分析程序设计的试验要求算符优先分析属于自下而上的分析方法,该语法分析程序的输入是终结符号串(即单词符号串,以一个“ # ”结尾),假如输入串是句子就输出“YES ”,否就输出“ NO ”和错误信息;算符优先分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用, 此题目给出文法的目的是为了便于对语法分析结果进行验证;(1) 文法设算符优先文法 G 为:EET | TTTF | FFPF | PPE | i说明: i 为整型常数或
5、者为标识符表示整型变量;使用中用* 表示;(2) 优先关系表设优先关系表如表1-2 所示;表 1-2优先关系表+*i#+*i #3. 基于算符优先分析方法的语法制导翻译程序设计的目的和要求3.1 基于算符优先分析方法的语法制导翻译程序设计的试验目的本试验是为运算机科学与技术等专业的同学在学习编译技术课程后,为加深对课堂教案内 容的懂得,培育解决实际问题才能而设置的实践环节;通过这个试验,使同学应用编译程序设计的 原理和技术 , 通过设计、编写和调试语法制导翻译程序,把握从一种语句的语法和语义动身,构造相应的语义子程序,实现基于算符优先分析方法的语法制导翻译的方法;能使得同学在设计和调试编 译程
6、序的才能方面有所提高;为将来设计、分析编译程序打下良好的基础;欢迎下载精品学习资源3.2 基于算符优先分析方法的语法制导翻译程序设计的试验要求算符优先分析方法是通过反复把输入符号移进分析栈,使用优先关系表在分析栈顶查找最左素短语,将其归约为一个非终结符号而实现的;这个分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用(所以此题目无需给出文法);基于算符优先分析方法的语法制导翻译是在算符优先语法分析的基础上进行翻译工作(即语义分析),每当将一个最左素短语归约为一个非终结符号时,就调用对应产生式的语义子程序,去完成相应的语义翻译工作,这步归约使用的产生式对非终结符号不加区分(即
7、将全部的非终结符号用一个通用的非终结符号表示);语法制导翻译程序的输入是终结符号串(即单词符号串,以一个“# ”结尾),假如输入符号串是句子 ,就根据其语义进行翻译,输出等价的四元式序列(作为练习应显示输出);4. 上机前的预备为了充分利用上机时间,在进行编译技术上机试验前应做好各种预备工作,详细应包括:(1) 复习与上机题目有关的学问,熟识有关定义、概念和实现算法;(2) 设计出程序流程框图和数据结构,编写出完整的源程序,进行静态检查;(3) 为所编写的程序构思一个运行、调试环境,例如,以什么方式供应输入数据、显示输出数据,如何调用(或启动)编写的程序;制定出程序调试方案和典型输入代码数据;
8、5. 课程设计报告课程设计完成后,按学校给定的格式和要求写出课程设计报告;二、 主要内容完成以下课程设计内容:1. 完成词法分析器设计,实现输入源程序字符串,每调用一次扫描器,就输出一个以内部形式表示的单词符号,输出形式为二元式:(种别编码,单词属性)2. 完成算符优先分析程序设计,把握实现通用算符优先分析算法的方法,实现输入终结符号串(即单词符号串,以一个“# ”结尾),假如输入串是句子就输出“YES”,否就输出“ NO”和错误信息;3. 完成基于算符优先分析方法的语法制导翻译程序设计,实现输入是终结符号串(即单词符号串,以一个“# ”结尾),假如输入符号串是句子, 就根据其语义进行翻译,
9、输出等价的四元式序列;三、 进度方案序设计内容完成时间备注号欢迎下载精品学习资源1查阅资料,编译器各部分概要设计一天2词法分析器设计一天3算符优先分析程序设计一天4基于算符优先分析方法的语法制导翻译程一天半序设计5验收交试验报告半天已完成的同学验收交试验报告四、设计成果要求1. 按进度方案和自己的才能完成课程设计内容要求,包括程序框图、源程序、调试步骤、调试方法、对运行结果的分析等;2. 总结整个课程设计,撰写出课程设计报告;五、 考核方式1. 程序调试完成后,由指导老师在运算机上检查,验收课程设计成果,并现场答辩;2. 评阅课程设计报告;同学姓名:(签字)指导老师: 编译课程教案组年 月 日
10、试验一词法分析器的设计与实现一、课程设计 综合试验 的目的与要求1.1 词法分析器设计的试验目的本试验是为运算机科学与技术专业的同学在学习编译技术课程后,为加深对课堂教案内容的懂得,培育解决实际问题才能而设置的实践环节;通过这个试验,使同学应用编译程序设计的原理和技术设计出词法分析器,明白扫描器的组成结构,不同种类单词的识别方法;能使得同学在设计和调试编译程序的才能方面有所提高;为将来设计、分析编译程序打下良好的基础;欢迎下载精品学习资源1.2 词法分析器设计的试验要求设计一个扫描器,该扫描器是一个子程序,其输入是源程序字符串,每调用一次识别并输出一个单词符号;为了防止超前搜寻,提高运行效率,
11、简化扫描器的设计,假设该程序设计语言中,基本字(也称关键词)不能做一般标识符用,假如基本字、标识符和常数之间没有确定的运算符或界符作间隔,就用空白作间隔;单词符号及其内部表示如表1-1所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成;单词符号的内部表示,即单词的输出形式为二元式:(种别编码,单词的属性值);表 1-1单词符号及其内部表示+8十进制整数*9*10(11)12单词符号种别编码单词的属性值BEGIN1IF2THEN3ELSE4END5标识符6在名字表中的地整型常数7址欢迎下载精品学习资源二、设计(试验)正文1. 词法分析器流程图开头初始化读入需要分析的
12、句子仍有单词未分析?否是终止读一个字符是是字母?关键字或标识符分析程序否是数字?是常 数 分析程序否其他单词分析程序输出单词二元式2. 词法分析器设计程序代码#include #include #include using namespace std;int whatchar aifinta=48&inta=97&inta=122欢迎下载精品学习资源elsereturn 1;/a-z的字母return 2;/ 其他的标点符号欢迎下载精品学习资源void scanchar a,int &m,char zc100100,int &ncout.setfios:left ;char zh100 ;in
13、t b=0,weizhi,r=0 ;int zbbm ;/检测整形常数whileam= cout 遇到空格 endl ;m+ ;ifwhatam=0whilewhatam=0b=b*10+intam-48;m+ ;欢迎下载精品学习资源elsestatic int d=0 ;d=d+1 ;zbbm=7;coutsetw9setfill b;cout,setw9setfill zbbm,dendl;/-检测字符型ifwhatam=1欢迎下载精品学习资源ifam=b&am+1=e&am+2=g&am+3=i&am+4=n& whatam+5=2m=m+5 ;zbbm=1;欢迎下载精品学习资源cout
14、begin,setw9setfillzbbmendl;/= 检测 begin elseifam=i&am+1=f&whatam+2=2欢迎下载精品学习资源zbbmendl;/ 检测 if elsem=m+2 ;zbbm=2;coutif,setw9setfill欢迎下载精品学习资源ifam=t&am+1=h&am+2=e&am+3=n&whatam+4=2m=m+4 ;zbbm=3;coutthen ,setw9setfill zbbmendl;/ 检测thenelseifam=e&am+1=l&am+2=s&am+3=e&whatam+4=2欢迎下载精品学习资源,setw9setfill z
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 基于 优先 分析 方法 语法 制导 翻译 程序设计 编译 课程设计 报告书
限制150内