- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录
第一章 绪论 2
1.1课程设计目的 2
1.2课程设计要求 2
1.3课程设计内容 2
1.3.1课设题目 2
1.3.2课设内容 2
1.3.3具体要求 2
1.3.4程序设计提示 3
1.3.5测试数据 4
1.4课程设计环境 4
第二章 设计方案 5
2.1模块划分 5
2.2模块调用关系图 5
2.3每个模块流程图 6
2.3.1词法分析模块流程图 6
2.3.2语法分析模块流程图 6
2.3.3主程序流程图 7
第三章 程序代码设计 7
3.1数据结构设计 7
3.2设计分析表 8
3.3词法分析设计 9
3.4语法和语义分析设计 10
第四章 程序测试和结果 13
4.1程序测试 13
4.2 运行结果 13
第五章 总结 15
参考文献 16
附录 17
源程序代码 17
程序使用说明书 24
第一章 绪论
1.1课程设计目的
《编译原理》课程设计是编译原理课程必不可少的一个环节,通过课程设计,加深对编译原理的教学内容的了解,以及实现编译原理各部分知识的融合。进而提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力。
1.明确课设任务,复习与查阅有关资料2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。3.凡用户输入时,给出足够的提示信息使用户感到方便用。.
1.3课程设计内容
1.3.1课设题目
编译程序构造
1.3.2课设内容
涉及词法分析、自下而上语法分析程序的实现:SLR(1)分析器的实现以及生成中间代码。
1.3.3具体要求
根据LR分析算法构造SLR(1)分析程序,并完成语法分析动作(当需要一个单词时,调用词法分析程序获取),同时完成语义分析生成四元式输出。要求程序具有通用性,改变文法时只需改变程序的数据初值,无需改变程序主体;
要求完成一条说明语句、一条算数表达式和赋值语句的翻译,生成中间代码。
变量说明语句的文法及相应的语义子程序:.att表示数据类型属性,fill函数表示将单词id及其类别属性填写符号表。
(0)S→D; {acc}
(1)D→int id { fill(id,int);D.att=int; }
(2)D→float id {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.PALCE)}
(3)E→T {E.PALCE=T.PALCE;}
(4)T→T(1)*F {T.PALCE=newtemp();
emit(*,T(1).PALCE,F.PALCE,T.PALCE)}
(5)T→F {T.PALCE=F.PALCE;}
(6)F→(E) { F.PALCE=E.PALCE;}
(7)F→id {P=LOOKUP(id.name)
F.PALCE=P;}
构造其用于SLR(1)分析的识别活前缀的DFA以及action表和goto表。然后编程实现。(关于词法分析部分只需识别出与此文法相关的单词即可(+,*,(,),id,=))。
1.3.4程序设计提示
(1)分析栈设计时可以用一个栈完成,也可以设计三个栈:一个符号栈,一个状态栈,一个语义栈,则归约时,则需要在符号栈中退掉n个符号,在状态栈中退掉n个符号(n为产生式符号个数),语义栈中退掉n个符号对应的语义;
(2)终结符表和非终结符表的组织和预测分析程序中相同(将符号对应到一个数字,表示在分析表中对应的下标)。
(3)action表中的错误处理:简化的错误处理:当查找action表出现空白时,则当前单词无法移进和规约,可简单的认为当前单词为多余的单词,则抛弃当前单词,读下一单词继续分析。
1.3.5测试数据
作为程序测试数据,以赋值语句area=r*r+r$作为测试输入(源程序)。程序要求输出二元式序列、符号表、语法分析过程、四元式序列。
假设AA.TXT的文件内容如下:
int area,r;
area=r*r+r;
程序运行情况如下:
请输入源文件名称:E:\AA.TXT回车
语法分析过程如下:
状态栈 符号栈 语义栈 动作说明
源程序对应的二元式如下:
(int,-)
(id,0)
(,,-)
您可能关注的文档
- DSP课程设计报告-FIR滤波器的设计.doc
- HACCP课程设计-HACCP体系在浓缩苹果汁生产中的应用.doc
- MATLAB课程设计-基于PSK和DPSK的matlab仿真.doc
- protel软件课程设计-电子设计应用软件训练 总结报告.docx
- 编译程序设计原理课程设计报告--Micro词法语法分析.doc
- 编译原理课程设计--PL-O语言的扩充.doc
- 编译原理课程设计--S语言的编译器的设计与实现.doc
- 测控仪器课程设计--机械式微位移机构及位移检测.doc
- 测控技术与仪器专业课程设计指导书--结构型压力传感器的设计.doc
- 冲模课程设计--多工位级进模设计.doc
- 2024年度党员干部专题组织生活会个人新四各方面对照检查材料3篇合集.docx
- 2023年民主生活会领导干部个人发言3篇范文.docx
- 第二批主题教育专题组织生活会普通党员个人对照检查材料合集2篇.docx
- 学习以案促改党纪教育专题组织生活会个人对照检查材料两篇.docx
- 党员领导干部2023年民主生活会“六个方面”个人对照检查材料3篇范文.docx
- 党员干部“严守纪律规矩 加强作风建设”组织生活会个人对照检查材料集合篇.docx
- 2024班子防治统计造假专题民主生活会对照检查材料两篇范文.docx
- 2024公司机关党支部教育专题组织生活会个人对照检查材料两篇.docx
- 2023年度专题民主生活会个人对照新6个对照方面检查材料3篇文稿.docx
- 2024第二批主题教育专题组织生活会对照检查材料2篇文本.docx
最近下载
- 部编版小学语文六年级下册第三单元教材解读分析.pptx
- 2025年江苏护理职业学院单招职业技能测试题库及答案参考.docx VIP
- 网络对大学生的影响与对策.doc VIP
- 特殊教育教学设计x.pptx VIP
- 2023年安徽医学高等专科学校单招综合素质考试试题及答案解析.docx
- IPC J-STD-001H 2020 EN 必威体育精装版英文 版的.pdf
- 韩大元 宪法(第七版)全套课件.pptx
- 上海中心大厦施工组织设计.pdf
- 新疆维吾尔自治区2024年普通高考第一次适应性检测(一模)理科综合试卷(含答案).pdf
- (2025年新版本)人教版七年级数学下册《10.3 实际问题与二元一次方程组》教案..docx VIP
文档评论(0)