合肥工业大学编译原理试验报告.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
合肥工业大学编译原理试验报告

合肥工业大学计算机与信息学院 编译原理实验报告 专 业: 学 号: 姓 名: 指导老师: 完成时间: 实验一 词法分析设计 实验目的 通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整和清楚的理解,并且能够正确和熟练地运用。 实验环境 Windows 8.1 、Visual Studio 2013、C++ 实验原理 实验数据结构说明 Table string str[40] int strcount string name 存储string 存储string 的数目 存储type名 Table() ~Table() void setname(string strTemp) string getname() void update(string strTemp) void init(string filename) int search(string strTemp) 构造函数 析构函数 设置name值 获取name值 添加strTemp的值 初始化table 在table中查询strTemp OutToken string value int type int pointer string tyname int line int row 存储分析单词的值 Type的编号 单词的位置 存储在表中位置 分析单词的行的值 分析单词的列的值 OutToken(string val,int t,int p,string tn,int l,int r) ~OutToken() friend ostream operator (ostream output, OutToken ot) 有参数 析构函数 重载函数 TokenAnalyzer Table Keyword Table Seperator Table sumoperator Table reloperator Table constant Table identifier OutToken outtoken Type 1:C++关键字 Type 2:分界符 Type 3:算术运算符 Type 4:关系运算符 Type 5:常数 Type 6:标识符 二元式 TokenAnalyzer() ~TokenAnalyzer() void inittable() void display() void strsearch(string strin,int line,int row) void readcode() 构造函数 析构函数 初始化表 输出所有单词二元式 分析trin 读取源代码 实验算法描述 1)词法分析设计流程图 2) 词法分析程序框图 3)统计字符位置程序框图 实验内容 使用C++语言实现对C++语言字集的源程序进行词法分析。通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示ERROR,然后跳过错误部分继续显示;同时进行标识符登记符号表的管理。 词法分析设计主要工作: 从源程序中读取字符 统计行数和列数用于错误单词的定位 删除空格类字符,包括回车、制表符空格 按拼写单词,并用(内码,属性)二元式来表示,(属性值—Token的机内表示) 如果发现错误则报告出错 根据需要是否填写标识符供以后各阶段使用 单词的基本分类: 关键字:由各程序语言具有的固定意义的标识符(保留字例) 标识符:用以表示各种名字的变量名、数组名、函数名 常数:任何数值常数 运算符:+、-、*、/ 关系运算符:、=、=、、=、、| 分界符: ;、,、(、)、[、]、{、} 实验要求 1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等 2、标识符填写的符号表需提供给编译程序的以后各阶段使用 3、根据测试数据进行测试。测试实例分为三部分: (1) 各种合法输入 (2) 各种组合输入 (3) 有记号组成的句子 4、词法分析程序设计要求输出形式 单词 二元序列 类型 位置(行,列) for (1,for) 关键字 (1,1) 实验结果 分析代码 分析结果 通过此次实验的编程实践加强了自己对词法分析的任务的理解,在一定程度上初步掌握了词法分析程序设计的原理和构造,并且在对编译的基本概念、原理和概念方法有更清楚的认识。在实验过程中自己对词法分析程序中的算法理解出现了一定的偏差,认为其中的标识符是程序执行之前必须都由自己手动构造,导致自己在程序的验收阶段出现了

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档