没有合适的资源?快使用搜索试试~ 我知道了~
16281002-杜永坤-专题5实验报告1
需积分: 0 0 下载量 133 浏览量
2022-08-08
23:14:41
上传
评论
收藏 652KB DOCX 举报
温馨提示
试读
27页
(2)设计中间代码四元式的结构 (3)输入串应是词法分析的输出二元式序列,即某赋值语句“专题 1”的输出结果,输出为赋值语句的四元式序列中间文件 (4)设计两个
资源详情
资源评论
资源推荐
编译原理专题训练 5 计算机 1601 班 杜永坤 16281002
《编译原理》研究性学习专题实验报告
实验 5: 基 于 S L R ( 1 ) 分 析 法 的 语 法 制 导
翻 译 及 中 间 代 码 生 成 程 序 设 计 原 理 与 实
现
学 院:计算机与信息技术学院
专 业: 计算机科学与技术
学生姓名: 杜永坤
学 号: 16281002
班 级: 计算机 1601 班
指导教师: 于双元
北京交通大学
2019 年 06 月 04 日
编译原理专题训练 5 计算机 1601 班 杜永坤 16281002
一、实验要求: ............................................................................3
1.[实验项目]......................................................................................3
2.[设计说明]......................................................................................3
3.[设计要求]......................................................................................3
二、实验过程: ............................................................................4
1、程序功能描述.....................................................................................4
2、主要数据结构描述.............................................................................4
2.1 主要使用的 java 数据结构类型.................................................................4
2.1.1 List ....................................................................................................4
list 中是否包含某个元素..................................................................4
list 获取长度:..................................................................................4
list 中查看(判断)元素的索引......................................................5
根据元素索引位置进行的判断........................................................5
判断 list 是否为空.............................................................................6
2.1.2 Map ...................................................................................................6
HashMap ............................................................................................6
常用 API ............................................................................................6
Map 的遍历 .......................................................................................7
Map 获取元素 ...................................................................................7
2.2 二元式文件结构.........................................................................................8
1)FirstAndFollow 类:...................................................................................8
2)ProductionFormula 类: .............................................................................9
3)AssignmentGrammar 类: ..........................................................................9
4)StateDFA 类:...........................................................................................10
5)DFAManager 类: ....................................................................................11
状态图:..................................................................................................15
6)SLR1AnalysisTable 类: ..........................................................................15
7)AssignmentTranslationGrammar 类:......................................................17
8)SLR1Analyzer 类:...................................................................................17
9)TranslationMain 类:................................................................................19
3、程序结构描述...................................................................................19
1)FirstAndFollow 类中.................................................................................19
2)ProductionFormula 类: ...........................................................................20
3)AssignmentGrammar 类: .....................................................................20
4)StateDFA 类:...........................................................................................21
5)DFAMananger 类: ..................................................................................21
6)SLR1AnalysisTable 类: ..........................................................................22
7)AssignmentTranslationGrammar 类:.............................................22
8)SLR1Analyzer 类: ................................................................................23
9)TranslationMain 类:..........................................................................24
三、程序测试 ..............................................................................24
编译原理专题训练 5 计算机 1601 班 杜永坤 16281002
3.1、正确样例........................................................................................24
3.2、错误样例........................................................................................25
3.2.1 缺少 = ....................................................................................................25
3.2.1 缺少操作符.............................................................................................26
编译原理专题训练 5 计算机 1601 班 杜永坤 16281002
一、实验要求:
1.[实验项目]
完成以下描述赋值语句 SLR(1)文法语法制导生成中间代码四元式的过程。
G[E]:
S→V=E
E →E+T∣E-T∣T
T→T*F∣T/F∣F
F→(E)∣i
V=I
2.[设计说明]
终结符号 i 为用户定义的简单变量,即标识符的定义。
3.[设计要求]
(1)构造文法的 SLR(1)分析表,设计语法制导翻译过程,给出每一产生
式对应的语义动作;
(2)设计中间代码四元式的结构;
(3)输入串应是词法分析的输出二元式序列,即某赋值语句“专题 1”的
输出结果,输出为赋值语句的四元式序列中间文件;
(4)设计两个测试用例(尽可能完备),并给出程序执行结果四元式序列。
二、实验过程:
1、程序功能描述
1、本程序能够根据所给定的文法构造其拓展文法
编译原理专题训练 5 计算机 1601 班 杜永坤 16281002
2、本程序能够根据拓展文法自动生成识别活前缀的 DFA
3、本程序能够根据活前缀的 DFA 构造 SLR(1)分析表
4、本程序能够进行 SLR(1)语法分析,并将赋值语句翻译成四元式
2、主要数据结构描述
2.1 主要使用的 java 数据结构类型
2.1.1 List
//终结符号集
private List<Character> Vt = new ArrayList<Character>();
//非终结符号集
private List<Character> Vn = new ArrayList<Character>();
使用 List 保存文法的非终结符号和终结符号,一旦文法给定,非终结符号
集合和终结符号集合也就确定,所以对 Vt、Vn 的操作一般是查找元素和遍历元
素。
list 中是否包含某个元素
方法:.contains(Object o); 返回 true 或者 false
例如下面在程序中使用到的:
Vn.contains(nArryStr[i].charAt(0))&&Vt.contains(nArryStr[i].charAt(1))
list 获取长度:
Vt.size()
使用 size()即可返回 List 的长度
list 中查看(判断)元素的索引
注意:.indexOf(); 和 lastIndexOf()的不同;
剩余26页未读,继续阅读
好运爆棚
- 粉丝: 30
- 资源: 342
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0