- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实习一词法分析
一、实验目的:
通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分
析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,
即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的
内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部
分继续显示)
二、实验预习提示
1、词法分析器的功能和输出格式
词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符
号常常表示成以下的二元式(单词种别码,单词符号的属性值)。本实验
中,采用的是按类来安排种别码的方式。
2、部分单词的BNF表示(可参考教材的状态转换图)
标识符-字母字母数字串
字母数字串-字母字母数字串|数字字母数字串|
下划线字母数字串|ε
无符号整数-数字数字串
数字串-数字数字串|ε
加法运算符-+
减法运算符--
大于关系运算符-
大于等于关系运算符-=
3、做词法分析器需要把对象语言的词法全部描述出来,在这我们取C语言子集,
它的词法如下:
(1)关键字
mainifelseintreturnvoidwhile……..所有的关键字都是小写。
(2)专用符号
=+-*/<=>>===!=;:,{}
[]()
(3)空格和空白、制表符和换行符。
空格一般用来分隔ID、NUM、专用符号和关键字,在词法分析阶段通常被忽
略。
各种单词符号的种别码,这是一种符号一个编码的设计。只供参考!
单词符号种别码单词符号种别码
main2[28
int1]29
char3{30
If4}31
else5,32
for6:33
while7;34
ID1035
NUM2036
=21=37
+22=38
-23==39
*24!=40
/25‘\0’1000
(26ERROR-1
)27
4、“超前搜索”方法
词法分析时,常常会用到超前搜索方法。如当前待分析字符串为“a+”,
当前字符为’’,此时,分析器倒底是将其分
文档评论(0)