网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理课程实验汇报示例.doc

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

1 完成日期:2007-6-20 指导老师:蒋宗礼张悦 编译原理实验报告 张悦 2 一词法的正规式描述 标识符:字母|(字母|数字字符)*(ε|_|.) (字母|数字字符)* 十 进 制 数 : (0|(1|2|3|4|5|6|7|8|9) (0|1|2|3|4|5|6|7|8|9)*)( ε |.)(0|1|2|3|4|5|6|7|8|9) 五.系统实现 (一)词法分析器的实现 四.系统设计 完成整个系统,实现本个实验的要求,需要两个比较大的模块:词法分析器 和语法分析器。 词法分析器的功能是将输入的程序串分解成一个一个独立的单词,并且记录 下每个单词的类型以及数值。这里词法分析器的实现有两种方法:调用一次词法 分析器,返回一个词的类型以及数值,以此类推;还有一种方法是条用一次词法 分析器将程序串的所有单词都分解出来并保存到一个地方(比如线形表)以便将 来使用。我采用的是前者,因为这样只需要对整??程序访问一遍 语法分析器的功能是将已经分解好的单词按照一定的规范(产生式)组合起 来,由此来确定输入程序的意思。我的设计是“语法分析器调用词法分析器”, 当语法分析其分析进行不下去的时候调用词法分析器获取一个单词,继续进行分 析。而语义功能是镶嵌在语法分析其当中的,当语法分析器分析出用什么产生式 的时候作相应的语义处理。 3. 编写测试程序,反复调用函数scan( ),输出单词种别和属性。 4. 改写文法,构造语法分析程序,要求按照最左派生的顺序输出派生的产 生式序列; 5. 改写语法分析程序,构造三地址代码生成程序。 6. 处理的源程序存放在文件中,它可以包含多个语句; 从键盘读入数据,分析出一个单词。 返回单词种别(用整数表示), 返回单词属性(不同的属性可以放在不同的全局变量中)。 1) 2) 3) 三. 实验要求 1. 编制正规式以及正规文法,画出状态图; 2. 根据状态图,设计词法分析函数int scan( ),完成以下功能: 二. 实验内容 1.编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法 分析程序。 2.用二维预约分析表,编制一个能够进行语法分析并生成派生的产生式序 列的编译程序。 3.用递归子程序法,编制一个能够进行语法分析并生成三地址代码的微型 编译程序。 一. 实验目的 基本掌握计算机语言的词法分析程序的开发方法。以及掌握计算机语言的语 法分析程序设计与属性文法应用的实现方法。锻炼自己的编程能力和逻辑思维能 力,体会计算机编译器的奥妙之处 张悦 3 三、状态图: -a|b|c|d|e|f|g|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q| R|S|T|U|V|W|X|Y|Z 数字字符-0|1|2|3|4|5|6|7|8|9 temp- (字母|数字字符)temp|ε temp2- (ε|_|.) temp3- (ε|.) temp4- (0|1|2|3|4|5|6|7)temp4|ε temp5- (0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f) temp5|ε 将状态合起来,得: (0)-1~9(1)|0(4)|字母(12)|运算符和分隔符(17) (1)-0~9(1)|. (2) (2)-0~9(3) (3)-0~9(3) (4)-.(2)|1~7(5)|0(13)|x(8)|X(8) (5)-0~7(5)|.(6) (6)-0~7(7) (7)-0~7(7) (8)-1~9(9)|a~f(9)|0(14) (9)-0~9(9)|a~f(9)|.(10) (10)-0~9(11)|a~f(11) (11)-0~9(11)|a~f(11) (12)-0~9(12)|a~z(12)|A~Z(12)|.(15)|_(15) (13)-.(6) (14)-.(10) (15)-0~9(16)|a~z(16)|A~Z(16) (16)-0~9(16)|a~z(16)|A~Z(16) 母 字 二、改变后的正规文法 标识符- 字母temp temp2temp 十进制整数-数字字符temp3数字字符 八进制整数- 0 temp4temp3 temp4 十六进制整数- 0xtemp5temp3 temp5 运算符和分隔符-+| - |* |/ || |= |( | ) |; 关键字-if| then| else |while |do (0|1|2|3|4|5|6|7|8|9)* 八进制数:0(0|(1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7)*) (ε|.)(0|1|2|3|4|5|6|7) (0|1|2

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档