编译原理课程设计-赋值语句的解释程序设计精选.docx

编译原理课程设计-赋值语句的解释程序设计精选.docx

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课程设计-赋值语句的解释程序设计精选

《编译原理》课程设计赋值语句的解释程序设计姓名:学号:班级:软件四班时间:2017/6/13学期:2016-2017第一学期设计题目:赋值语句的解释程序设计设计内容:用算符优先分析方法设计一个分析解释程序,对输入的赋值语句、输出语句、清除语句进行词法分析、语法分析、表达式求值并存储于指定变量中:若存在错误,提示错误相关信息。设计目的:了解掌握算符优先分析的基本方法、内容学会科学思考并解决问题,提高程序设计能力实现环境电脑:Windows10家庭中文版型号:雷神处理器:Intel(R) Core(TM) i7-6700HQ CPU @2.60GHz RAM:16.0GB(15.9GB可用)系统类型:64位操作系统,基于x64的处理器实现语言及环境:Java,JDK 1.8IDE:Ecplise neon.1概要设计文法表示:S v=E|E?|clearEE+T|E-T|TTT*F|T/F|FF(E)|v|c归约规则:N v=N| N?|clearN N + N | N - N | NN N * N | N / N | NN ( N)|v|c种别码设计:单词符号种别码=1?2+3-4*5/6(7)8v9c10clear11#12N13优先关系表123456789101112=?+-*/()vcclear#1=2?3+4-5*6/7(=8)9v=10c11clear12#=程序流程图详细设计单词符号二元组使用下面的类来表示:public class WordSymbol {public static final int TYPE_NULL = 0; //无值public static final int TYPE_INT = 1; //整数public static final int TYPE_STRING = 2; //字符串int code;//种别码int type;//单词符号值类型Object value;//单词符号的属性值public WordSymbol() {super();}public WordSymbol(int code, int type, Object value) {super();this.code = code;this.type = type;this.value = value;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public int getType() {return type;}public void setType(int type) {this.type = type;}public Object getValue() {return value;}public void setValue(Object value) {this.value = value;}@Overridepublic String toString() {return WordSymbol [code= + code + , type= + type + , value= + value + ];}}归约栈:用Java中的栈对象 StackWordSymbol 来表示单词串:用链表对象ListWordSymbol来存放单词串变量表:使用MapString,Integer对象来充当变量表,其以键值对的方式存放变量,键可以设为变量名,值存放变量值变量名值KeyValue可归约串语义解释:变量归约:N v,在变量表中查找该变量,若不存在则报错:变量未定义,否则修改非终结符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来描述,其结构如下public class Relation {public static final int REL_LESS = -1; // 小于public static final int REL_EQUAL = 0; // 等于public static final int REL_GREATER = 1; // 大于public static final int REL_N

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档