




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译技术课程设计B任 务 书一、 目的与要求为了巩固、理解课程编译技术所学知识,要求学生完成一个简单编译程序所涉及的主要模块。具体要求如下:1 独立完成词法分析器的设计与实现。通过设计、编写和调试词法分析程序(扫描器),了解扫描器的组成结构,不同种类单词的识别方法,掌握由单词的语法规则出发,画出识别单词的状态转换图,然后再用程序实现的扫描器设计方法。2 独立完成算符优先分析的设计与实现。通过设计、编写和调试算符优先分析程序,了解算符优先分析器的组成结构以及对文法的要求, 掌握实现通用算符优先分析算法的方法。3 基于算符优先分析方法的语法制导翻译的设计与实现。通过设计、编写和调试语法制导翻译程序,掌握从一种语句的语法和语义出发,构造相应的语义子程序,实现基于算符优先分析方法的语法制导翻译的方法。这里假设采用的语法分析是自下而上的算符优先分析方法,采用的中间代码形式是四元式。二、 主要内容1 词法程序设计一个扫描器,该扫描器是一个子程序,其输入是源程序字符串,每调用一次,输出一个以内部形式表示的单词符号。为了避免超前搜索,提高运行效率,简化扫描器的设计,假设该程序设计语言中,基本字(也称关键字)能作一般标识符用,如果基本字、标识符和常数之间没有确定的运算符或界符作间隔,则用空白作间隔。单词符号及其内部表示如下表所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成。单词符号的内部表示,即单词的输出形式为二元式:(种别编码,单词的属性值)。单词符号及其内部表示单词符号种别编码单词的属性值BEGINIFTHENELSEEND标识符常数(整型)=+*,()1234567891011121314在名字表中的地址在常数表中的地址识别单词符号的状态转换图如下图所示。*2字母非字母与数字 空白0字母或数字1数字数字*4非数字3=56+*非*8*97,10(11其它13)12识别单词符号的状态转换图对于该状态转换图需要说明几个问题:(1)0状态是初始状态,在该状态滤掉无用空格。(2)从初态出发读进一个字符串到达终态就识别了一个单词,即状态转换图每运行一次识别一个单词。(3)若在标有“*”号的终态结束,意味着多读进一个不属于现行单词的字符,这个字符应该回退。(4)在2状态结束,意味着接受了一个基本字或标识符,还需要查一张基本字表,来区分这个单词是基本字还是标识符。(5)13状态是错误状态,在该状态进行错误处理。用程序实现识别单词符号的状态转换图就能得到所要求的扫描器,其方法是对应每一个状态结点设计一个程序段,完成在读进可能输入的符号后该状态下所做的工作,再设计一个控制程序,通过判别当前状态和输入字符确定执行哪个状态对应的程序段。2 设计算符优先分析程序算符优先分析属于自下而上的分析方法,该语法分析程序的输入是终结符号串(即单词符号串,以一个“”结尾),如果输入串是句子则输出“YES”,否则输出“NO”和错误信息。算符优先分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用,本题目给出文法的目的是为了便于对语法分析结果进行验证。(1)文法设算符优先文法为: 说明:i为整型常数或者为标识符表示整型变量;使用中用*表示。(2)优先关系表设优先关系表如下表所示。优先关系表+ * i ( ) # + * i ( ) # (3)算符优先分析算法算符优先分析算法中需要使用分析栈存放文法符号,变量为栈的栈顶指针,变量存放当前输入符号。为错误处理程序,分析算法如下: BEGINp:=1;/* 置分析栈S初值:“#”进空栈 */Sp:=#;REPET 将下一个输入符号读入a; IF SpVT THEN j:= p ELSE j:= p-1; WHILE Sja DO BEGIN REPEAT Q:=Sj; IF Sj-1VT THEN j:=j-1 ELSE j:=j-2; UNTIL SjQ; 将Sj+1Sp归约为一个非终结符N; p:=j+1; Sp:=N; END OF WHILE; IF Sja OR Sj=a THEN BEGIN p:=p+1; Sp:=a; END ELSE ERROR;/* 错误处理 */UNTIL a=#;END.算法结束时,若分析栈呈现出:“”,则说明输入串是句子,否则输入串不是句子。3 基于算符优先分析方法的语法制导翻译程序算符优先分析方法是通过反复把输入符号移进分析栈,使用优先关系表在分析栈顶寻找最左素短语,将其归约为一个非终结符号而实现的。这个分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用(所以本题目无需给出文法)。基于算符优先分析方法的语法制导翻译是在算符优先语法分析的基础上进行翻译工作(即语义分析),每当将一个最左素短语归约为一个非终结符号时,就调用对应产生式的语义子程序,去完成相应的语义翻译工作,这步归约使用的产生式对非终结符号不加区分(即将所有的非终结符号用一个通用的非终结符号表示)。语法制导翻译程序的输入是终结符号串(即单词符号串,以一个“”结尾),如果输入符号串是句子,则按照其语义进行翻译,输出等价的四元式序列(作为练习应显示输出)。(1)算符优先语法分析程序设算符优先语法分析程序使用的算符优先关系表和分析算法由本章2.3.5节给出,该算符优先语法分析程序实现了对算术表达式的语法分析。(2)产生式的语义动作由于算符优先分析方法对产生式的非终结符号不加区分,这里将文法中的非终结符号只用一个表示,各产生式的语义动作表示如下:注:i为整型常数或者为标识符表示整型变量;E为算术表达式,为了区分同一个产生式中不同的非终结符号E,使用了下脚标加以区别;在使用中用*表示。(3)语法制导翻译程序设计为了实现算数表达式的语法制导翻译,按照给出产生式的语义动作,对每个产生式设计出相应的语义子程序,语义子程序使用产生式右部文法符号的语义值,这些语义值取自符号表(终结符号)或分析栈的语义值部分(非终结符号),生成四元式(填入四元式表)和产生式左部文法符号的语义值(存入分析栈的语义值部分),语义子程序的调用由算符优先语法分析程序完成。语义值是非终结符号的一个语义值,表示算术表达式值的存放地址(待分配存储空间后,由此可得到实际存储单元地址)。语义过程、和是一个函数语义过程,其功能是申请一个临时存储单元,将来存放产生式的左部符号的值,函数值是该存储单元的地址,为了简化程序设计,可以假设初值为1,每调用一次其值累加1。是一个语义过程, 其功能是生成一个四元式,将该四元式填入四元式表,该四元式实现的功能是,其中代表一种算术运算符,是非终结符号。是一个函数语义过程, 其功能是用去查常数表或者名字表,函数值是在表中的地址,它代表的语义值(待分配存储空间后,由此可得到实际存储单元地址),为了区分常数表和名字表的地址,可以将表地址加上不同的整型常数(例如:100和200)以示区别。涉及到的主要数据结构1)分析栈在算符优先语法分析中用一个一维数组表示,这里扩展为二维数组,的元素由两部分组成(共用一个栈顶指针),是终结符号、“”或非终结符,是对应中文法符号和的语义值(运算符、“(”和“)”无语义值),类型为整型,表示地址,1in 。2)四元式表用来存放翻译程序生成的四元式序列,用二维数组表示,的元素(一个四元式)由四部分组成,是运算符号(即终结符:“”、“”或“”),、和是语义值,其类型全部为整型,表示地址,1in 。三、 进度计划序号设计(实验)内容完成时间备注1词法程序2010.12.13一天2设计算符优先分析程序2010.12.13-15两天3基于算符优先分析方法的语法制导翻译程序2010.12.16-17上午,共一天半4验收实验结果2010.12.17下午四、 设计(实验)成果要求 通过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下半年教师资格考试《小学综合素质》试题及答案解析
- 2025年教育系统校级后备干部选拔考试题及答案
- 2025年环境卫生学考试模拟试题(附答案)
- 2025年缝合技术理论知识考核试题及答案
- 2025年初中道德与法治教师进城考试试卷及答案
- 寒区钢桥面聚氨酯混凝土铺装结构界面特性及参数优化研究
- 乳品浓缩工安全演练能力考核试卷含答案
- 分级结构聚苯胺基复合电极材料的冷冻界面聚合构筑与储能增强机制研究
- (演唱)槟榔树下摇网床说课稿-2025-2026学年小学音乐接力版六年级上册-接力版
- 2025年口语一对一项目发展计划
- 2025年武汉东西湖分局招聘警务辅助人员招聘73人考试参考试题及答案解析
- 小学数学人教版(2024)三年级上第三单元毫米、分米和千米测试卷(含答案)
- 池黄高铁安全培训课件
- 单相光伏并网反激式微逆变器:拓扑结构、控制策略与性能优化研究
- 2025-2030中国三坐标测量机行业市场发展趋势与前景展望战略研究报告
- 新版八上道法知识点 2025-2026学年统编版道德与法治八年级上册
- 学堂在线 中国传统艺术-篆刻、书法、水墨画体验与欣赏 章节测试答案
- 2025年河南省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解(5卷)
- 体育教学改革课件
- 2025年山西省教师职称考试(理论知识)复习题及答案(新课标)-山西教师
- DB32∕T 4530-2023 生产经营单位安全生产培训规范
评论
0/150
提交评论