- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE32
《编译原理》
课程设计
赋值语句的解释程序设计
姓名:汤朋
学号:2014112217
班级:软件四班
时间:2017/6/13
学期:2016-2017第一学期
设计题目:赋值语句的解释程序设计
设计内容:
用算符优先分析方法设计一个分析解释程序,对输入的赋值语句、输出语句、清除语句进行词法分析、语法分析、表达式求值并存储于指定变量中:若存在错误,提示错误相关信息。
设计目的:
了解掌握算符优先分析的基本方法、内容
学会科学思考并解决问题,提高程序设计能力
实现环境
电脑:
Windows10家庭中文版
型号:雷神
处理器:Intel(R)Core(TM)i7-6700HQCPU@2。60GHz
RAM:16。0GB(15。9GB可用)
系统类型:64位操作系统,基于x64的处理器
实现语言及环境:Java,JDK1.8?IDE:Ecpliseneon.1
概要设计文法表示:S?v=E|E?|clear
E?E+T|E—T|T
T?T*F|T/F|F
F?(E)|v|c归约规则:
N?v=N|N?|clear
N?N+N|N-N|N
N?N*N|N/N|N
N?(N)|v|c
种别码设计:
单词符号
种别码
=
1
?
2
+
3
-
4
*
5
/
6
(
7
)
8
v
9
c
10
clear
11
#
12
N
13
优先关系表
1
2
3
4
5
6
7
8
9
10
11
12
=
?
+
—
*
/
(
)
v
c
clear
#
1
=
〈
〈
〈
〉
2
?
〉
3
+
〉
〉
〈
〈
〉
〈
〈
>
4
-
〉
〉
〈
〈
〈
〉
<
〉
5
*
〉
〉
〉
〉
〈
>
〈
〈
〉
6
/
〉
〉
〉
〉
〉
〈
〉
7
(
〈
〈
〈
〈
=
〈
〉
8
)
〉
〉
〉
9
v
=
〉
〉
〉
〉
〉
10
c
〉
〉
〉
〉
〉
11
clear
〉
12
#
〈
〈
〈
<
〈
〈
<
〈
〈
〈
=
程序流程图
详细设计单词符号二元组使用下面的类来表示:publicclassWordSymbol{
publicstaticfinalintTYPE_NULL=0;//无值
publicstaticfinalintTYPE_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;
}
publicvoidsetCode(intcode){
this。code=code;
?}
publicintgetType(){
returntype;
}
publicvoidsetType(inttype){
this.type=type;
}
publicObjectgetValue(){
returnvalue;
}
publicvoidsetValue(Objectvalue){
this。value=value;
}
@Override
publicStringtoString(){
return”WordSymbol[code=”+code+,type=”+type+”,value=+value+”];
}
}
归约栈:用Java中的栈对象StackWordSymbol〉来表示单词串:用链表对象List〈WordSymbol〉来存放单词串变量表:使用MapString,Integer〉对象来充当变量表,其以键值对的方式存放变量,键可以设为变量名,值存放变量值
变量名
值
Key
Value
可归约串语义解释:变量归约:N?v,在变量表中查找该变量,若不存在则报错:变量未定义,否则修改非终结符N的属性值为变量v的值,并设N的种别码为13
常量归约:N?c,修改非终结符N的属性值为常量c的值,并设N的种别码为13
运算归约:设运算的操作数为N1,N2;将N1,N2进行相应运算并将运算结果设为N3的属性值,将N3的种别码设为13括号归约:将(N)归约为N赋值归约:在变量表中查找被赋值
您可能关注的文档
最近下载
- 米哈游文案策划专员岗面试题库参考答案和答题要点.docx VIP
- 20S517 排水管道出水口.docx VIP
- 医院民主评议党员制度.doc VIP
- 2025四川甘孜州民生人力资源管理有限公司招聘办案辅助人员初步筛选及笔试历年参考题库附带答案详解.docx
- 最新铁路营业线施工安全培训考试试题及答案.docx VIP
- 中国浙江省地图PPT模板.pptx VIP
- 智能体组织:AI时代的下一代组织范式+The+Agentic+Organization+Contours+Of+The+Next+Paradigm+For+The+AI+Era.docx
- (精品)《阿甘正传》剧本中英文台词对照完整版.pdf VIP
- (精益改善)工装模具定期保养检查表.pdf VIP
- 常识4600问(美化版).docx VIP
原创力文档


文档评论(0)