赋值语句的解释程序设计

赋值语句的解释程序设计

ID:11799162

大小:258.13 KB

页数:45页

时间:2018-07-14

赋值语句的解释程序设计_第1页
赋值语句的解释程序设计_第2页
赋值语句的解释程序设计_第3页
赋值语句的解释程序设计_第4页
赋值语句的解释程序设计_第5页
资源描述:

《赋值语句的解释程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1.设计题目:赋值语句的解释程序设计2.设计内容:用算符优先分析方法设计一个分析解释程序,对输入的赋值语句、输出语句、清除语句进行词法分析、语法分析、表达式求值并存储于指定变量中:若存在错误,提示错误相关信息。3.设计目的:a)了解掌握算符优先分析的基本方法、内容b)学会科学思考并解决问题,提高程序设计能力4.实现环境Ø电脑:lWindows10家庭中文版l型号:雷神l处理器:Intel(R)Core(TM)i7-6700HQCPU@2.60GHzlRAM:16.0GB(15.9GB可用)l系统类型:64位操作系统,基于x64的处理器Ø实现语言及环境:45Java,JDK1.8IDE:Ec

2、pliseneon.11.概要设计文法表示:Sàv=E

3、E?

4、clearEà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种别码设计:单词符号种别码=145?2+3-4*5/6(7)8v9c10clear11#12N13优先关系表123456789101112=?+-*/()vcclear#1=<<<<<<<>452?>3+>>><<<><<>4->>><<<><<>5*>>>>><><<>6/>>>>><><<>7(<<<<<=<<>8)>>>>>>>9v=>>>>>>>10c

19、>>>>>>>11clear>12#<<<<<<<<<<<=45程序流程图451.详细设计单词符号二元组使用下面的类来表示:publicclassWordSymbol{publicstaticfinalintTYPE_NULL=0;//无值publicstaticfinalintTYPE_INT=1;//整数publicstaticfinalintTYPE_STRING=2;//字符串intcode;//种别码inttype;//单词符号值类型Objectvalue;//单词符号的属性值publicWordSymbol(){super();}publicWordSymbol(intcode

20、,inttype,Objectvalue){super();this.code=code;this.type=type;this.value=value;}publicintgetCode(){returncode;}publicvoidsetCode(intcode){this.code=code;}45publicintgetType(){returntype;}publicvoidsetType(inttype){this.type=type;}publicObjectgetValue(){returnvalue;}publicvoidsetValue(Objectvalue){th

21、is.value=value;}@OverridepublicStringtoString(){return"WordSymbol[code="+code+",type="+type+",value="+value+"]";}}归约栈:用Java中的栈对象Stack来表示单词串:用链表对象List来存放单词串变量表:使用Map对象来充当变量表,其以键值对的方式存放变量,键可以设为变量名,值存放变量值45变量名值KeyValue可归约串语义解释:变量归约:Nàv,在变量表中查找该变量,若不存在则报错:变量未定义,

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

23、tion{publicstaticfinalintREL_LESS=-1;//小于publicstaticfinalintREL_EQUAL=0;//等于publicstaticfinalintREL_GREATER=1;//大于45publicstaticfinalintREL_NULL=2;//无关系intcodeLeft,codeRight;intrelation;publicRelation(){super();

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

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

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