没有合适的资源?快使用搜索试试~ 我知道了~
编译原理实验词法分析器
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 7 下载量 178 浏览量
2023-01-02
20:38:12
上传
评论 6
收藏 130KB DOC 举报
温馨提示
试读
11页
编译原理实验词法分析器
资源推荐
资源详情
资源评论
洛阳理工学院实验报告
院部
计算机系
班级
学号
姓名
课程名称
编译原理
实验日期
2018
实验名称
词法分析器
成绩
实验目的:
加深对词法分析过程的理解;加强对词法分析方法的掌握;能够采用一种编程语
言实现简单的词法分析;能够使自己编写的程序对简单的程序片段进行词法分析。
实验条件:
装有 Windows 操作系统,Microsoft Visual C++ 6.0。
实验内容:
自定义一种程序设计语言,或选择已有的一种高级语言(C 语言),编制它
的词法分析程序。
实验要求:
1.对单词的构成规则有明确的定义
2.编写的程序能够正确识别源程序中的单词符号
3.识别出的单词以<种别码,值>的形式保存在符号表中
4.词法分析中源程序和分析后的符号表均保存在.txt 文件中
5.有一定的检查错误的能力。遇到错误时可显示“Error”,然后跳过错误部分继续
显示。
6. 实验报告包括以下内容
(1)编程思路、流程图、源代码
(2)上机调试时发现的问题,以及解决的过程
(3)所使用的测试数据及结果
(4)心得体会
实验步骤
1. 给出目标语言的所有单词符号及种别编码、单词符号的状态转换图。
2. 依次读入源程序,对源程序进行单词切分和识别,直到源程序结束。
3. 对正确的单词,按照它的种别以<种别码,值> 的形式保存在符号表中。
4. 对不正确的单词,做出错误处理。
实验内容:
1.编程思路:
1.1、实现预处理功能
源程序中可能包含有对程序执行无意义的符号,要求将其剔除。
首先编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依
次存入输入缓冲区(字符型数据);然后编制一个预处理子程序,去掉输入串中的
回车符、换行符和跳格符等编辑性文字;把多个空白符合并为一个;去掉注释。
1.2、实现词法分析功能
输入:所给文法的源程序字符串。
输出:将每个单词或数字以及他对应的种别码和类型输出到文件中。
具体实现时,可以将单词的二元组用结构进行处理。
1.3、待分析的 C 语言子集的词法
1)关键字
"char","int","if","else","var" ,"return","break","do","while","for","
double","float","short"
2)运算符和界符
+ - * / < <> <= > >= = ; ( ) [ ] \ | & { } \\ #
3)空格由空白、制表符和换行符组成
空格一般用来分隔 ID、NUM、专用符号和关键字,词法分析阶段通常被忽略。
1.4、各种单词符号对应的种别码
表 1 各种单词符号的种别码
单词符号
种别码
char
1
int
2
if
3
else
4
var
5
return
6
break
7
do
8
while
9
for
10
double
11
float
12
short
13
标识符
14
数字
15
符号
16-40
1.5、 词法分析程序的主要算法思想
算法的基本任务是从文件中读出字符串表示的源程序中识别出具有独立意义
的单词符号,其基本思想是根据扫描到的单词符号的第一个字符的种类,拼出相
应的单词符号,并输出到文件中。
2.流程图:
2.1 主程序流程图
主函数流程图
是
否
输入串结束
输入编译后的文件名
调用分析子程序
结束
开始
输入打开的文件名
关闭文件
文件为空?
是
输入串结束
是
剩余10页未读,继续阅读
文档优选
- 粉丝: 88
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页