- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《编译原理》试验指导书
适用试验课时:30
适用对象:城市学院计算机系
试验目标和内容
编译原理试验目标是使学生将编译理论利用到实际当中,实现一个简单语言集词法分析程序、语法分析程序和简单语义处理程序,验证实际编译系统实现方法,并加深对编译理论认识。
基础试验分为三个部分,试验一识别无符号数词法分析器设计实现、试验二无符号数算术四则运算LR语法分析器设计实现,试验三是无符号数算术四则运算语义处理程序实现,总试验课时为30课时。要求每个学生独立完成全部试验要求。
每部分基础试验还包含若干扩展试验,供编程能力较强学生自愿进行。
试验一 词法分析程序实现
一、试验目标和要求
经过编写和调试一个词法分析程序,掌握在对程序设计语言源程序进行扫描过程中,将字符形式源程序流转化为一个由各类单词符号组成流词法分析方法。
二、试验内容
选择无符号数算术四则运算中各类单词为识别对象,要求将其中各个单词识别出来。
输入:由无符号数和+,-,*,/, ( , ) 组成算术表示式,如1.5E+2-100。
输出:对识别出每一单词均单行输出其类别码(无符号数值暂不要求计算)。
三、实现方法和环境
1、首先设计识别各类单词状态转换图。
描述无符号常数确实定、最小化状态转换图图1所表示。其中编号0,1,2,…,6代表非终止符号无符号数、余留无符号数、十进小数、小数部分、指数部分、整指数及余留整指数, 1,2和6为终态,分别代表整数、小数和科学计数识别结束状态。
图1 文法G[无符号数]状态转换图
其中编号0,1,2,…,6代表非终止符号无符号数、余留无符号数、十进小数、小数部分、指数部分、整指数及余留整指数, 1,2和6为终态,分别代表整数、小数和科学计数识别结束状态。
在一个程序设计语言中,通常全部含有若干类单词符号,为此可首先为每类单词建立一张状态转换图,然后将这些状态转换图合并成一张统一状态图,即得到了一个有限自动机,再进行必需确实定化和状态数最小化处理,最终据此结构词法分析程序。
四则运算算术符号识别很简单,直接在状态图0状态分别引出对应标识矢线至一个新终态即可。依据自己习惯,也能够将其转换为状态矩阵形式。
2、词法分析程序编写
依据描述语言中各类单词文法状态转换图或状态矩阵,利用某种语言(C语言或JAVA语言)直接编写词法分析程序。
3、词法分析程序测试
用于测试扫描器实例源文件中应有词法正确,也应有错误字符串,对于输入测试用例源程序文件,以对照形式将扫描器分析结果信息在输出文件中表示出来。
四、参考资料
实现无符号数识别参考方法:将设计状态转换图直接转化为一张程序步骤图,并在外层再增加一个以EOF为循环终止条件while循环,即形成能连续识别各类单词词法分析程序。
各类单词编码提议如表1。
表1 单词内部编码
单词符号
类别码(CLASS)
单词值(VALUE)
无符号数
1
数字值
+
2
无值
-
3
无值
*
4
无值
/
5
无值
(
6
无值
)
7
无值
五、扩展试验
1、试对基础试验识别单词种类进行扩充,结构识别以下单词词法分析程序。
语言中含有单词包含五个有代表性关键字begin、end、if、then、else;标识符;整型常数;六种关系运算符;一个赋值符和四个算术运算符。参考实现方法简述以下。
表2 扩展单词分类码表
单词符号
类别编码
类别码助记符
单词值
begin
1
BEGIN
end
2
END
if
3
IF
then
4
THEN
else
5
ELSE
标识符
6
ID
字母打头字母数字串
整常数
7
INT
数字串
8
LT
=
9
LE
=
10
EQ
11
NE
12
GT
=
13
GE
:=
14
IS
+
15
PL
-
16
MI
*
17
MU
/
18
DI
处理过程:在此为了使词法分析程序结构比较清楚,且尽可能避免一些枝节问题纠缠,假定要编译语言中,全部关键字全部是保留字,程序员不得将它们作为源程序中标识符;在源程序输入文本中,关键字、标识符、整常数之间,若未出现关系和算术运算符和赋值符,则最少须用一个空白字符加以分隔。作了这些限制以后,就能够把关键字和标识符识别统一进行处理。即每当开始识别一个单词时,若扫视到第一个字符为字母,则把后续输入字母或数字字符依次进行拼接,直至扫视到非字母、数字字符为止,以期取得一个尽可能长字母数字字符串,然后以此字符串查所谓保留字表(此保留字表已事先造好),若查到此字符串,则取出对应类别码;反之,则表明该字符串应为一标识符。采取上述策略后,针对表2中部分单词能够结构一个图2所表示有限自动机(以状态转换图表示)。在图2中添加了当进行状态转移时,词法分析程序应实施语义动作。依据图2,可用C语言编写出符合以上几项要求一个对应扫描器程序,如程序一所表示。
您可能关注的文档
最近下载
- 七上历史早背晚默小纸条.pdf VIP
- 《住院患者身体约束的护理》团体标准解读.pptx VIP
- 安装施工员工作职责内容(32篇).docx VIP
- 气凝胶隔热保温纳米涂料-气凝胶基础材料项目可行性研究报告.doc VIP
- 中心学校校园安全治本攻坚三年行动实施方案(2024-2026).pdf VIP
- 电动升降式高杆灯安装使用说明书.doc VIP
- GB50257-2014 电气装置安装工程 爆炸和火灾危险环境电气装置施工及验收规范.pdf VIP
- 【备战25年高考数学】解答题06 10类导数答题模板(原卷版) (2).docx VIP
- 《思想道德与法治》课件——专题6 遵守道德规范 锤炼道德品格.pptx VIP
- 【备战25年高考数学】解答题01 7类解三角形答题模板(解析版).docx VIP
文档评论(0)