合肥工业大学编译原理实验报告

合肥工业大学编译原理实验报告

ID:31216791

大小:222.56 KB

页数:71页

时间:2019-01-07

合肥工业大学编译原理实验报告_第1页
合肥工业大学编译原理实验报告_第2页
合肥工业大学编译原理实验报告_第3页
合肥工业大学编译原理实验报告_第4页
合肥工业大学编译原理实验报告_第5页
资源描述:

《合肥工业大学编译原理实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、合肥工业大学计算机与信息学院编译原理实验报告专业:学号:姓名:指导老师:完成时间:实验一词法分析设计一、实验目的通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学牛对编译的基木概念、原理和方法有完整和清楚的理解,并且能够正确和熟练地运用。二、实验环境Windows8.1、VisualStudio2013>C++三、实验原理(1)实验数据结构说明Tab1estringstr[40]intstrcountstringname存储string存储string的数目存储type名Table0~Table

2、()voidselntime(stringstrTemp)stringgetncimeOvoidupdate(stringstrTemp)voidinit(stringfilename)intsearch(stringstrTemp)构造函数析构函数设員name值获取name值添加strTemp的值初始化table在table中査询strTempsiringvalueinttypeintpointer存储分析单词的值Type的编号单词的位置OutTokenstringtyname存储在表中位置intline分析单词的行的值introw

3、分析单词的列的值OutToken(stringval,intt,intp,stringtn,int冇参数构造函数1,intr)^OutToken()析构函数friendostream&operator<<(ostream&output,重载<<函数OutToken&ot)TableKeywordType1:C++关键字TableSeperatorType2:分界符TablesumoperatorType3:算术运算符TablereloperatorType4:关系运算符TabicconstanlType5:常数Tableidenlif

4、ierType6:标识符TokenAnalyzei'OutTokcnouttokon二元式TokenAnalyzer()构造函数'TokcnAnalyzcr()析构函数voidinittableO初始化表voiddisplay()输出所有单词二元式voidstrsearch(stringstrin,intline,introw)分析strinvoidreadcode()读取源代码(1)实验算法描述1)词法分析设计流程图输出2)词法分析程序框图TXT中浜恥构建表TXT中咦取TSR代码输出OutTokaa3)统计字符位置程序框图四、实验内

5、容使用C++语言实现对C++语言字集的源程序进行词法分析。通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示ERROR,然后跳过错误部分继续显示;同时进行标识符登记符号表的管理。词法分析设计主要工作:(1)从源程序屮读取字符(2)统计行数和列数用于错误单词的定位(3)删除空格类字符,包括回车、制表符空格(4)按拼写单词,并用(内码,屈性)二元式来表示,(屈性值一Token的机内表示)(5)如果发现错误则报告出错(6)根据需要是否填写标识符供以后各阶段使用单词的基本分类:(1)关键

6、字:由各程序语言具有的固定意义的标识符(保留字例)(2)标识符:用以表示各种名字的变量名、数组名、函数名(3)常数:任何数值常数(4)运算符:+、-、*、/(5)关系运算符:〈、<=>二、>、>二、◊、(6)分界符:;、,、(、)、[、]、{、}五、实验要求1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等2、标识符填写的符号表需提供给编译程序的以后各阶段使用3、根据测试数据进行测试。测试实例分为三部分:(1)各种合法输入(2)各种组合输入(3)有记号组成的句子4、词法分析程序设计要求输出形式单词二元序列类型位置(行,列)f

7、or(1,for)关键字(1,1)六、实验结果(1)分析代码while(i=1){intk=23;〃注释return;}(2)分析结果单词while<1>264522164521<<<<<<<<<<<<>>>>>>>>>>>>912315247125112L字^^符字第亜键界识聶界番识聂耀界界委关分丽劉爰刀秦运帶分关我刀1>1.2>13>14>15>16>21>31>32>33>34>35>41>42>51>七、实验总结通过此次实验的编程实践加强了自己对词法分析的任务的理解,在一定程度上初

8、步掌握了词法分析程序设计的原理和构造,并且在对编译的基本概念、原理和概念方法有更清楚的认识。在实验过程中自己对词法分析程序中的算法理解出现了一定的偏差,认为其中的标识符是程序执行之前必须都由自己手动构造,导致自己在程序的

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

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

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