西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc

西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc

ID:62660412

大小:617.50 KB

页数:32页

时间:2021-05-15

西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc_第1页
西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc_第2页
西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc_第3页
西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc_第4页
西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc_第5页
资源描述:

《西南交大-编译原理课程设计报告二-赋值语句的解释程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《编译原理》课程设计赋值语句的解释程序设计:汤朋学号:2014112217班级:软件四班时间:2017/6/13学期:2016-2017第一学期321.设计题目:赋值语句的解释程序设计2.设计容:用算符优先分析方法设计一个分析解释程序,对输入的赋值语句、输出语句、清除语句进行词法分析、语法分析、表达式求值并存储于指定变量中:若存在错误,提示错误相关信息。3.设计目的:a)了解掌握算符优先分析的基本方法、容b)学会科学思考并解决问题,提高程序设计能力4.实现环境Ø电脑:lWindows10家庭中文版l型号:雷神l处理器:Intel(R

2、)Core(TM)i7-6700HQCPU2.60GHzlRAM:16.0GB(15.9GB可用)l系统类型:64位操作系统,基于x64的处理器Ø实现语言及环境:Java,JDK1.8IDE:Ecpliseneon.15.概要设计文法表示:Sàv=E

3、E?

4、clear32EàE+T

5、E-T

6、TTàT*F

7、T/F

8、FFà(E)

9、v

10、c归约规则:Nàv=N

11、N?

12、clearNàN+N

13、N-N

14、NNàN*N

15、N/N

16、NNà(N)

17、v

18、c种别码设计:单词符号种别码=1?2+3-4*5/6(7)8v9c1032clear11#12N13优先关

19、系表123456789101112=?+-*/()vcclear#1=<<<<<<<>2?>3+>>><<<><<>4->>><<<><<>5*>>>>><><<>6/>>>>><><<>7(<<<<<=<<>8)>>>>>>>9v=>>>>>>>10c>>>>>>>11clear>12#<<<<<<<<<<<=32程序流程图321.详细设计单词符号二元组使用下面的类来表示:publicclassWordSymbol{publicstaticfinalintTYPE_NULL=0;//无值publicstaticfinalintTY

20、PE_INT=1;//整数publicstaticfinalintTYPE_STRING=2;//字符串intcode;//种别码inttype;//单词符号值类型Objectvalue;//单词符号的属性值publicWordSymbol(){super();}publicWordSymbol(intcode,inttype,Objectvalue){super();this.code=code;this.type=type;this.value=value;}publicintgetCode(){returncode;}publ

21、icvoidsetCode(intcode){this.code=code;}publicintgetType(){returntype;}publicvoidsetType(inttype){this.type=type;}publicObjectgetValue(){returnvalue;}publicvoidsetValue(Objectvalue){this.value=value;}OverridepublicStringtoString(){32return"WordSymbol[code="+code+",type=

22、"+type+",value="+value+"]";}}归约栈:用Java中的栈对象Stack来表示单词串:用链表对象List来存放单词串变量表:使用Map对象来充当变量表,其以键值对的方式存放变量,键可以设为变量名,值存放变量值变量名值KeyValue可归约串语义解释:变量归约:Nàv,在变量表中查找该变量,若不存在则报错:变量未定义,否则修改非终结符N的属性值为变量v的值,并设N的种别码为13常量归约:Nàc,修改非终结符N的属性值为常量c的值,并

23、设N的种别码为13运算归约:设运算的操作数为N1,N2;将N1,N2进行相应运算并将运算结果设为N3的属性值,将N3的种别码设为13括号归约:将(N)归约为N赋值归约:在变量表中查找被赋值的变量v,若不存在,则先在变量表中创建该变量,然后再将N的属性值赋值给v,最后将v=N归约为N输出语句:先输出表达式N的属性值,然后将N?归约为N32清除语句:将变量表中的所以变量清空,然后clear归约为N运算符之间的关系使用对象Relation来描述,其结构如下publicclassRelation{publicstaticfinalintRE

24、L_LESS=-1;//小于publicstaticfinalintREL_EQUAL=0;//等于publicstaticfinalintREL_GREATER=1;//大于publicstaticfinalintREL_NULL=

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

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

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