编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)

编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)

ID:35626979

大小:370.50 KB

页数:20页

时间:2019-04-03

编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)_第1页
编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)_第2页
编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)_第3页
编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)_第4页
编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)_第5页
资源描述:

《编译原理课程设计--WHILE循环语句的翻译程序设计(递归下降法,输出三地地址)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、武汉理工大学计算机科学与技术学院《编译原理课程设计》学号:0120810340614课程设计题目WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)学院计算机科学与技术学院专业计算机科学与技术班级0806姓名张方纪指导教师郭羽成2010年1月7日课程设计任务书武汉理工大学计算机科学与技术学院《编译原理课程设计》学生姓名:张方纪专业班级:计算机0806班指导教师:郭羽成工作单位:计算机科学与技术学院题目:WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)初始条件:理论:学完编译课程,掌握一种计算机高级语言的使用。实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以

2、在其上进行设计。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)写出符合给定的语法分析方法的文法及属性文法。(2)完成题目要求的中间代码三地址表示的描述。(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。(5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:1系统描述(问题域描述);2文法及属性文法的描述;3语法分析方法描述及语法分析表设计;4按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;5编译系统的概要设计;6详细的算法描述(流程图或伪代码

3、);7软件的测试方法和测试结果;8研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);9参考文献(按公开发表的规范书写)。时间安排:设计安排一周:周1、周2:完成系统分析及设计。周3、周4:完成程序调试及测试。周5:撰写课程设计报告。设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。设计报告书收取时间:设计周的次周星期一上午10点。指导教师签名:2010年11月23日系主任(或责任教师)签名:2010年11月23日武汉理工大学计算机科学与技术学院《编译原理课程设计》WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)1任务使用C++语言编写一个while循环语

4、句的翻译程序,使用递归下降法进行语法分析,输出三地址码表示。2实施2.1初步理解研究对象选取C++语言的一个子集——简化了的while循环语句语言。这样用文字描述它的各级组成:l语句(非终极符表示):nWhile循环语句Wn赋值语句El表达式(非终极符表示):n逻辑表达式L运算符:&&、

5、

6、、!n关系表达式R运算符:>、<、==、>=、<=、!=n算术表达式A运算符:+、-、*、/、%l单词(终极符表示):n标识符in实常数cn三种表达式所用的运算符u逻辑或与非:v、^、!u关系运算符ru算术运算符+、*n括号(、)n花括号{、}n分号;说明:2.1.1.1最外层必须是一while语句。2.

7、1.1.2While判断条件可以是任何上述语言所涵盖的能求出值来的表达式、标识符或实常数。2.1.1.3while循环体内的语句可以是零个或多个赋值语句或while语句的任意排列。2.1.1.4对代码的空白、程序段长度没有任何不合理限制。2.2所研究语言的文法描述文法G[W]的定义见表1武汉理工大学计算机科学与技术学院《编译原理课程设计》表1:文法G[W]的定义:描述产生式Select备注翻译动作While循环语句W->f(V){G}ff:while保留字f之前入栈”#”,{之前入栈”while”,分析完之后入栈”##”有值体V->L!,i,c,(有值体的定义待扩充逻辑表达式,与项的或L->

8、YU!,i,c,((vY)*U->),;U->vYUvv:

9、

10、或运算符分析完之后入栈v与项,非项的与Y->FN!,i,c,((^F)*N->v,),;N->^FN^^:YY与运算符分析完之后入栈^非项,关系表达式的非F->BR!,i,c,(特别处理:递归子程序法决定必须先分析完B再分析R,而此处要输出后缀式(R!)要求这一过程反过来。因此,为B和F单独开辟一条通信渠道,F过程分析完R后再看B时否要求在R后面加上!。具体实现见程序代码。(!)*B->i,c,(B->!B!!:!非运算符关系表达式,算术表达式的关系运算R->ADi,c,((rA)*D->^,v,),;D->rADrr:><==>

11、=<=!=关系运算符分析完之后入栈r算术表达式,乘式的和A->MSi,c,((+M)*S->r,^,v,),;S->+MS++:+,-算术运算符S之前入栈+则为左结合,S之后则为右结合。取前者积式,单个词或括号体的积M->QPi,c,((*Q)*P->+,r,^,v,),;P->*QP**:*,/,%算术运算符S之前入栈+则为左结合,P之后则为右结合。取前者单个词或括号体Q->iii:标识符分析完之后入栈iQ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。