没有合适的资源?快使用搜索试试~ 我知道了~
首页《编译原理》词法分析实验报告
资源详情
资源评论
资源推荐
北京信息科技大学
信息管理学院
(课程设计)实验报告
实验名称
设计与实现一个词法
分析器
实验地点 实验时间
2016.11.25
1. 课程设计目的:
结合讲授内容,设计与实现一个简单词法编译器,通过设计编制调试一个具体的词法分析程序,加深
对词法分析程序的功能及实现方法的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各
类单词的词法分析方法。
2. 课程设计内容:
设计与实现一个简单词法编译器。具体内容是产生一个二元式文本文件,扩展名为 dyd,可将 Pascal
或 C 程序(测试程序)分解成为一个一个的单词及类型,并查“单词符号与种别对照表”得出其种别,用一数
字表示。
3. 课程设计要求:
(1)掌握和实现词法分析器的功能:
输入源程序,输出单词符号(二元式表示)。
输入 输出
(2)单词符号的分类:
关 键 字 : 是 由 程 序 语 言 定 义 的 具 有 固 定 意 义 的 标 识
符。if、int、for、while、do、return、break、continue 等等,单词种别码为 1。
标识符:用来表示各种名字,如变量等,单词种别码为 10。
常数:常数的类型有整型,实型等无符号数,单词种别码为 11。
运算符:算术运算符,关系运算符,逻辑运算符+、-、*、/、=、>、<等;可以考虑更复杂情况>
=、<=、!= ;单词种别码为 4。
界限符:逗号,分号等“,”“;”“(”“)”“ {”“}”等等, 单词种别码为 5。
(3)实验步骤:
、确定词法分析器的接口关系;
、设计算法参考教材图 。
(4)选用图形界面的形式,读文件和显示结果,同时将结果输出到文件中。
(5)最终上交的文件包括:测试文件、词法分析器源程序文件、输出文件。
(6)将运行结果粘贴到实验报告中。
(7)对各小组的要求:
1
词法分析器源程序
( 字 符
流)
二元式
(单词流)
组长负责整个程序的规划(数据结构、接口)、调试、运行及成员分工。
组长 :××× 学号:××
组员 1:××× 学号:×× 负责内容:×××
组员 2:××× 学号:×× 负责内容:×××
组员 3:××× 学号:×× 负责内容:×××
4. 实验条件:
一台装有 Dev C++的计算机
5. 实验方法与步骤:
测试文件:D:/vo/vo.txt
词法分析器源程序文件:D:/vo/简易词法分析器.cpp
输出文件:D:/vo/vonew.txt
2
3
6. 实验总结:
说明:
1. 课程名称、课程设计目的、课程设计内容、课程设计要求 由教师确定,实验前由教师事先填好,然后作为实验报告模版
供学生使用;
2. 实验条件由学生在实验或上机之前填写,教师应该在实验前检查并指导;
3. 实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;
4. 实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;
5. 源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。
程序源代码:
!"#$#%$&'()(* ()(* () (* ()!(* ((*
((*((*
((*((*((*(+(*((*()(*((*(,(*
(+(*
((* (!(* (-(* (+(* ((* (+(* (./.(* (./(*
(+(*
((* (+(* ((* (0(* (1(* ((* (/ (* (/0(*
(/(*
(/)(*((*((*((*(/(*(1(*(!2(*((*
(1(*(1(*((*((*(!(*(0(*(0(*(1(3456
关键字 7 个65
86456要处理的 90 文件65
86+456保存处理结果的文件65
:#77$456要处理的 90 文件路径65
0:#77$456保存处理结果文件的路径65
+#$#$456输入缓冲区65
+#$456扫描缓冲区65
)+;.&7456输入缓冲区编号65
"&7456总单词数量65
"&7456单行单词个数65
<&7456记录行数65
4
0"=>456词法分析65
0;=>456过滤注释及多余空格65
0"=>456解析获取单词65
0"?=#$>456获取单词类型65
<?=>456判断字符类型65
@/=>456判断是否为可消除空格的字符65
"=>456判断是否为字母65
?!"=#$>456判断是否为关键字65
"=#$>456判断是否为标识符65
;.)=>456判断是否为数字65
=#$>456判断是否为整型65
=#$>456判断是否为浮点型65
.=>
'
/+=(AAAAAAAAAAAAAAAAAA欢迎使用我的简易词法分析器AAAAAAAAAAAAAAAAAAAAB(>4
/+=(请设置要分析的程序文件的路径:B(>4
+=(C(*:>4
/+=(请设置分析结果所保存的文件路径:B(>4
+=(C(*0:>4
+==&+/=:*((>>&&;88>
'
/+=(对不起,不能打开该文件!请认真设置文件真实所在位置。B(>4
74
3
+==+&+/=0:*(1(>>&&;88>
'
/+=(对不起,不能写入该文件!请检查一下文件配置。B(>4
74
3
+/+=+* ( 简 易 词 法 分 析 器 :1 ! :D B
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB(>4
+/+=+*(输出顺序:#单词符号位置$#单词符号$#单词分类$#单词种别码$B(>4
/+=(输出顺序:#单词符号位置$#单词符号$#单词分类$#单词种别码$B(>4
"=>4
+/+=+*(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB 分析结束!B(>4
+=>4
+=+>4
74
3
56666666666666666666词法分析66666666666666666665
0"=>
5
剩余23页未读,继续阅读
miraclebae
- 粉丝: 2
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0