词法分析设计与实现

词法分析设计与实现

ID:14590818

大小:454.42 KB

页数:40页

时间:2018-07-29

词法分析设计与实现_第1页
词法分析设计与实现_第2页
词法分析设计与实现_第3页
词法分析设计与实现_第4页
词法分析设计与实现_第5页
资源描述:

《词法分析设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理实验报告实验名称:词法分析设计与实现实验日期:学生姓名:学生学号:一、实验目的通过设计,调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。确定词法分析器的输出形式及标识符与关键字的区分方法。加深对课堂教学的理解;提高词法分析方法的实践能力。通过本实验,应达到以下目标:1.掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。2.掌握词法分析的实现方法。3.上机调试编出的词法分析程序。二、实验内容编写词法分析程序,逐个读入源程序字符并按照构词规则切分成一系

2、列单词。单词是语言中具有独立意义的最小单位,包括标点符号、括号、转义符、关系算符、算术算符、赋值运算符、保留字、标识符和常量等。词法分析是编译过程中的一个阶段,在语法分析前进行。也可以和语法分析结合在一起进行,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。输入:字符流输出:Token序列三、实验方案1.程序的功能:从source.txt文件读入字符流,在destination.txt文件中写入token序列,token序列为三元式,格式为[单词,种别码,内部码]。2.实现方案:基于有限自动机(FA)实现:a)定义各种单词的正则表达式(REs)b)将这些正则表达式转换成非

3、确定有限自动机(NFA)c)将这些非确定有限自动机合并为一个非确定有限自动机d)将这个非确定有限自动机转换为具有最少状态的确定有限自动机(DFA0)e)基于该确定有限自动机编程四、实验假设定义程序所能识别的单词:正则表达式见表1的单词条目单词单词类型种别码内部码;标点符号1---,标点符号2---.标点符号3---“标点符号4---‘标点符号5---:标点符号6---{左大括号7---}右大括号8---[左中括号9---]右中括号10---(左小括号11---)右小括号12---转义符号13---&&关系算符14---

4、

5、关系算符15---!关系算符16--->关系算符17---<

6、关系算符18--->=关系算符19---<=关系算符20---!=关系算符21---==关系算符22---+算术算符23----算术算符24---*算术算符25---/算术算符26---%算术算符27---++赋值运算符28---+=赋值运算符29-----赋值运算符30----=赋值运算符31---*=赋值运算符32---/=赋值运算符33---%=赋值运算符34---=赋值运算符35---include保留字36---void保留字37---bool保留字38---char保留字39---int保留字40---float保留字41---double保留字42---do保留字43-

7、--while保留字44---if保留字45---then保留字46---else保留字47---for保留字48---goto保留字49---switch保留字50---case保留字51---continue保留字52---break保留字53---default保留字54---main保留字55---return保留字56---print保留字57---exit保留字58---letter

8、_(letter

9、digit

10、_)*标识符59标识符在符号表中的位置digit(digit)*整数60整数在常数表中的位置digit(digit)*.(digit)*小数61小数在常数表中的

11、位置$保留字62---表1单词种类表五、相关的有限自动机图1“;”的非确定有限自动机其他的由一个字符组成的单词的非确定有限自动机与图1类似图2“&&”的非确定有限自动机其他的由2个字符组成的单词的非确定有限自动机与图2类似图3标识符和保留字的非确定有限自动机图4整数的非确定有限自动机图5小数的非确定有限自动机将这些非确定有限自动机合并为一个非确定有限自动机然后将这个非确定有限自动机转换为具有最少状态的确定有限自动机(DFA0)最后的DFA0如图6、7、8、所示:图6DFA0-1图7DFA0-2图8DFA0-3六、重要的数据结构1.全局变量:(1)ifstreamsource:输入文件

12、“source.txt”的实例对象(2)ofstreamdestination:输出文件“destination.txt”的实例对象(3)stringsymbol[58]:用于储存词法分析器所能识别的单词或字符,最大元素个数为58(4)intlength1:symbol数组的最大元素个数(5)stringIdTable[100]:符号表,用于存放程序识别出的标识符(6)intlength2:IdTable数组的最大元素个数(7)stringconstant

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。