程序设计中哪些环节影响词法分析的效率?如何提高效率
发布网友
发布时间:2022-04-30 05:11
我来回答
共1个回答
热心网友
时间:2023-10-15 14:55
实验
1
词法分析程序的设计
姓名:
学号:
专业班级:
一、实验目的
掌握计算机语言的词法分析程序的开发方法。
二、实验内容
编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析程序。
三、实验要求
1
、
根据以下的正规式,编制正规文法,画出状态图;
标识符
<
字母
>(<
字母
>|<
数字字符
>)*
十进制整数
0 |
(
1|2|3|4|5|6|7|8|9
)
(
0|1|2|3|4|5|6|7|8|9
)
*
如有余力,则进一步分析八进制和十六进制整数,其正规式如下:
八进制整数
0
(
1|2|3|4|5|6|7
)
(
0|1|2|3|4|5|6|7
)
*
十六进制整数
0x
(
0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f
)
(
0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f
)
*
运算符和界符
+
-
*
/
>
<
=
<=
>=
(
)
;
{
}
关键字
main
if
then
else
while
do
int
(
可根据需要添加
)
2
、根据状态图,设计词法分析函数
int scan( )
,完成以下功能:
1
)
从文本文件中读入测试源代码,根据状态转换图,分析出一个单词,
2
)
以二元式形式输出单词
<
单词种类,单词属性
>
其中单词种类用整数表示:
0
:标识符
1
:十进制整数
2
:八进制整数
3
:十六进制整数
运算符和界符,关键字采用一字一符,不编码
其中单词属性表示如下:
标识符,整数由于采用一类一符,属性用单词表示
运算符和界符,关键字采用一字一符,属性为空
3
、编写测试程序,反复调用函数
scan( )
,输出单词种别和属性。
四、实验环境
PC
微机
DOS
操作系统或
Windows
操作系统
Turbo C
程序集成环境或
Visual C++
程序集成环境
五、实验步骤
1
、
根据正规式,画出状态转换图;
2
、
根据状态图,设计词法分析算法;
3
、
采用
C
或
C++
语言,设计函数
scan( )
,实现该算法;
4
、
编制测试程序(主函数
main
)
;
5
、
调试程序:
读入文本文件
program.txt
,
运行程序得到输出结果
result.txt
,
并检查输出
结果是否正确