编译原理课程设计报告-编译程序构造

编译原理课程设计报告-编译程序构造

ID:6817792

大小:225.00 KB

页数:39页

时间:2018-01-27

编译原理课程设计报告-编译程序构造_第1页
编译原理课程设计报告-编译程序构造_第2页
编译原理课程设计报告-编译程序构造_第3页
编译原理课程设计报告-编译程序构造_第4页
编译原理课程设计报告-编译程序构造_第5页
资源描述:

《编译原理课程设计报告-编译程序构造》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、北华航天工业学院《编译原理》课程设计课程设计题目:编译程序构造作者所在系部:计算机科学与工程系作者所在专业:计算机科学与技术作者所在班级:作者学号:作者姓名:指导教师姓名:完成时间:2011年6月11日39课程设计任务书课题名称《编译原理》课程设计完成时间2011.6.10指导教师职称副教授学生姓名班级总体设计要求总体设计要求:课程设计内容共给定1个题目,每个学生按照课程设计要求,在规定的两周时间内独立完成。题目:编译程序构造涉及内容:词法分析、语法分析、语义分析生成中间代码工作内容及时间进度安排第一周、周1:设计动员,布置课程设计任务,查阅资料,制定方案

2、,进行程序方案设计。第一周、周2-周5:编写和调试程序第二周、周1-周3:编写和调试程序第二周、周4:整理,撰写设计报告。第二周、周5:验收,提交设计报告,评定成绩。毕业设计成果1、课程设计报告书一份2、源程序清单一份3、成果使用说明书一份39内容摘要本次课程设计涉及词法分析、自下而上语法分析程序的实现:SLR(1)分析器的实现以及生成中间代码。通过词法分析识别单词和运算符,根据LR分析算法构造SLR(1)分析程序,并完成语法分析动作,语法分析调用词法分析,然后查找用SLR(1)构造的ACTION表和GOTO表进行移进或归约,归约时根据不同的产生式进行不同

3、的语义分析,最终输出分析过程,并形成符号表、二元式、四元式文件。本次程序将本次课程所学的词法分析,语法分析和语义分析结合起来,使我们进一步理解正则表达式,自动机以及语法分析方法。同时加深掌握语法制导翻译和中间代码生成,在语法分析的同时进行语义加工并产生出中间代码的方法。关键词:算数表达式和赋值语句,词法分析,语法分析,语义分析,SLR(1)39目录内容摘要3目录4第1章绪论51.1、课程设计目的51.2、课程设计意义51.3、课程设计要求51.4、课程设计内容51.4.1、题目51.4.2、内容51.4.3、具体要求61.4.4、程序设计提示61.4.5、

4、测试数据61.4.6、程序扩展要求71.5、课程设计地点与环境7第2章程序设计内容82.1、设计方案介绍82.1.1、模块划分及模块调用关系82.1.2、程序流程图82.2、SlR(1)分析表9第3章程序详细设计与实现113.1、词法分析113.2、语法分析123.3、语义分析153.4、程序实现结果图15第4章总结18参考文献19附录2039第1章绪论1.1、课程设计目的《编译原理》课程设计是编译原理课程必不可少的一个环节,通过课程设计,加深对编译原理的教学内容的了解,以及实现编译原理各部分知识的融合。进而提高学生分析问题、解决问题,从而运用所学知识解决

5、实际问题的能力。1.2、课程设计意义计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术,编译技术是计算机科学中发展最迅速,最成熟的技术,它集中了计算机发展的成果与精华,它具有很强的理论性和实践性,本次课设将理论应用到实践,增强学生学习的热情。1.3、课程设计要求1.明确课设任务,复习与查阅有关资料2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。3.注意增强程序界面的友好性。凡用户输入时,给出足够的提示信息使用户感到方便使用。4.注意提高程序的可读性和可理解性:程序中应有适当的注释,变量命名应符合实际含义,程

6、序结构清晰,易于阅读和理解。1.4、课程设计内容1.4.1、题目编译程序构造1.4.2、内容涉及词法分析、自下而上语法分析程序的实现:SLR(1)分析器的实现以及生成中间代码。1.4.3、具体要求根据LR分析算法构造SLR(1)分析程序,并完成语法分析动作(当需要一个单词时,调用词法分析程序获取),同时完成语义分析生成四元式输出。要求程序具有通用性,改变文法时只需改变程序的数据初值,无需改变程序主体;要求完成一条说明语句、一条算数表达式和赋值语句的翻译,生成中间代码。39变量说明语句的文法及相应的语义子程序:.att表示数据类型属性,fill函数表示将单词

7、id及其类别属性填写符号表。(0)S→D;{acc}(1)D→intid{fill(id,int);D.att=int;}(2)D→floatid{fill(id,float);D.att=float;}(3)D→D(1),id{fill(id,D(1).att);D.att=D(1).att;}算数表达式和赋值语句的文法及相应的语义子程序。(1)A→id=E;{p=lookup(id.name);emit(E.PALCE,,p);}(2)E→E(1)+T{E.PALCE=newtemp();emit(+,E(1).PALCE,T.PALCE,E.PALC

8、E)}(3)E→T{E.PALCE=T.PALCE;}(4)T→T

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

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

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