《编译原理》JAVA

《编译原理》JAVA

ID:38769100

大小:387.00 KB

页数:26页

时间:2019-06-19

《编译原理》JAVA_第1页
《编译原理》JAVA_第2页
《编译原理》JAVA_第3页
《编译原理》JAVA_第4页
《编译原理》JAVA_第5页
资源描述:

《《编译原理》JAVA》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录第一章绪论21.1课程设计目的21.2课程设计要求21.3课程设计内容21.3.1课设题目21.3.2课设内容21.3.3具体要求21.3.4程序设计提示31.3.5测试数据41.4课程设计环境4第二章设计方案52.1模块划分52.2模块调用关系图52.3每个模块流程图62.3.1词法分析模块流程图62.3.2语法分析模块流程图62.3.3主程序流程图7第三章程序代码设计73.1数据结构设计73.2设计分析表83.3词法分析设计93.4语法和语义分析设计10第四章程序测试和结果134.1程序测试134.2运行结果13第五章总结15参考文献16附录17源程序代码17程序使用说明

2、书2426第一章绪论1.1课程设计目的《编译原理》课程设计是编译原理课程必不可少的一个环节,通过课程设计,加深对编译原理的教学内容的了解,以及实现编译原理各部分知识的融合。进而提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力。1.2课程设计要求1.明确课设任务,复习与查阅有关资料2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。3.注意增强程序界面的友好性。凡用户输入时,给出足够的提示信息使用户感到方便使用。4.注意提高程序的可读性和可理解性:程序中应有适当的注释,变量命名应符合实际含义,程序结构清晰,易于阅读和理解。1.3课程设计内容1.3.1课设

3、题目编译程序构造1.3.2课设内容涉及词法分析、自下而上语法分析程序的实现:SLR(1)分析器的实现以及生成中间代码。1.3.3具体要求根据LR分析算法构造SLR(1)分析程序,并完成语法分析动作(当需要一个单词时,调用词法分析程序获取),同时完成语义分析生成四元式输出。要求程序具有通用性,改变文法时只需改变程序的数据初值,无需改变程序主体;要求完成一条说明语句、一条算数表达式和赋值语句的翻译,生成中间代码。26变量说明语句的文法及相应的语义子程序:.att表示数据类型属性,fill函数表示将单词id及其类别属性填写符号表。(0)S→D;{acc}(1)D→intid{fill(

4、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.PALCE)}(3)E→T{E.PALCE=T.PALCE;}(4)T→T(1)*F{T.PALCE=newt

5、emp();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个符号,在状态

6、栈中退掉n个符号(n为产生式符号个数),语义栈中退掉n个符号对应的语义;(2)终结符表和非终结符表的组织和预测分析程序中相同(将符号对应到一个数字,表示在分析表中对应的下标)。(3)action表中的错误处理:简化的错误处理:当查找action表出现空白时,则当前单词无法移进和规约,可简单的认为当前单词为多余的单词,则抛弃当前单词,读下一单词继续分析。261.3.5测试数据作为程序测试数据,以赋值语句area=r*r+r$作为测试输入(源程序)。程序要求输出二元式序列、符号表、语法分析过程、四元式序列。假设AA.TXT的文件内容如下:intarea,r;area=r*r+r;程序

7、运行情况如下:请输入源文件名称:E:AA.TXT<回车>语法分析过程如下:状态栈符号栈语义栈动作说明源程序对应的二元式如下:(int,-)(id,0)(,,-)(id,1)(;,-)(id,0)(=,)(id,1)(*,)(id,1)(+,)(id,1)(;,-)符号表如下:arear源程序对应的四元式序列如下:(*,r,r,T1)(+,T1,r,T2)(=,T2,,area)分析过程完成。1.4课程设计环境硬件环境:图书馆五楼计算机系软一实验室;软件环境:JCreator26

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

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

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