- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
词法分析器实验报告
词法分析器设计
一、 实验目的:
对 C 语言的一个子集设计并实现一个简单的词法分析器,掌握利用状
态转换图设计词法分析器的基本方法。利用该词法分析器完成对源程
序字符串的词法分析。输出形式是源程序的单词符号二元式的代码,
并保存到文件中。
二、实验内容 :
1. 设计原理
词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词
符号。
理论基础:有限自动机、正规文法、正规式
词法分析器(Lexical Analyzer) 又称扫描器(Scanner) :执行词法分析的程
序
2. 词法分析器的功能和输出形式
功能: 输入源程序、输出单词符号
程序语言的单词符号一般分为以下五种:关键字、标识符、常数、运算符,
界符
3. 输出的单词符号的表示形式:
单词种别用整数编码,关键字一字一种,标识符统归为一种,常数一种,各
种符号各一种。
4. 词法分析器的结构
输入
列表
结构预处理子程序输入缓冲区列表输入扫描器扫描缓冲区单词符号状态转换图实现开始字符字符数字数字其他数字其
预处理子程序 输入缓冲区
扫描器 扫描缓冲区
单词符号
5. 状态转换图实现
字符/数字
*
开始 0 字符 1 其他 2
数字
数字 *
3 其他 4
输出形式功能输入源程序输出单词符号程序语言的单词符号一般分为以下五种关键字标识符常数运算符界符输出的单
+-*/#=,.;
5
<> = 7
6
*
字符/数字 8
错误 9
: =
10 11
其中2 ,4 ,5 ,7 ,8 ,
9 ,11是结束状态 错误 12
三、程序设计
号二元式的代码并保存到文件中二实验内容设计原理词法分析的任务从左至右逐个字符地对源程序进行扫描产生一个
1.总体模块设计
/* 用来存储目标文件名*/
string file_n
文档评论(0)