《编译原理教程》第十章上机实验内容.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.1 实验一 编译程序的分析与验证   1. 实验目的   了解编译程序中LR分析表的作用以及语义加工程序的功能。   2. 实验要求   通过编译程序PAS和COMPILER的运行,检验编译程序输出结果的正确性。   3. 实验内容   (1) 验证下述程序输出结果的正确性:   (2) 自行设计一程序进行正确性验证, 给出二元式序列的注释及状态栈STACK加工分析对应的符号栈内容。  10.2 实验二 算术表达式的扩充   1. 实验目的   掌握LR分析表的设计方法和语义加工程序的扩充。   2. 实验要求   参照算术表达式LR分析表的设计方法,设计扩充后的算术表达式LR分析表,并对原语义加工程序进行修改,加入新添加的内容。   3. 实验内容   算术表达式文法扩充如下: E→E+E∣E-E∣E*E∣E/E∣(E)∣i 试根据该文法重新设计LR分析表,并修改语义加工程序,最后验证修改的结果。 10.3 实验三 添加新的程序语句(一)   1. 实验目的   通过添加新的程序语句,全面了解一个语句的编译程序设计过程。   2. 实验要求   对添加的语句设计LR分析表及相应的处理程序,并将其添加到程序语义处理程序中。   3. 实验内容   将计数循环for语句的功能添加到编译程序中。for语句的文法及每个产生式相应的语义子程序如下:   4. 说明   (1) 实现时可对for语句的文法设计出一个LR分析表,然后将该文法的开始符看做程序语句LR分析表中的一个终结符,即像赋值语句一样处理(当然仍要重新设计程序语句的LR分析表)。另一种方法就是直接将for语句的文法纳入到程序语句文法中(即像if和while语句一样处理),并重新设计程序语言的LR分析表。  (2) ?for语句中产生式的语义动作需要参考编译程序中对if和while语句的处理部分做相应修改。 10.4 实验四 添加新的程序语句(二)   1. 实验目的   掌握另一种添加语句功能的方法。   2. 实验要求   通过深入了解语句的内在功能,利用等价变换的方法实现语句的编译过程。   3. 实验内容   已知repeat语句与while语句的功能结构图如图10-1所示。 图10-1 条件循环语句结构图   通过等价变换用while语句实现repeat语句的格式如下: S; while not B do S; 试在编译程序中用等效的while语句实现repeat语句的功能。   4. 说明   可采用预处理方法先将源程序中的repeat语句用等效的while语句替换,但这种替换在嵌套语句中处理起来比较麻烦。 10.5 编译原理课程设计   编译原理课程设计的目的是让学生在编译原理实验的基础上,实际动手完成高级程序语言的词法、语法、语义及中间代码生成程序的设计与实现,从而掌握高级程序语言编译的基本能力,初步具备程序设计语言的词法分析、语法分析、语义分析及中间代码生成等各环节的设计能力,能够设计并完成一个高级程序设计语言语句的编译(由高级语言到中间语言)。   通过编译原理课程设计,应使学生达到下述能力:   (1) 学会程序设计语言的词法分析程序的设计与实现;   (2) 学会程序设计语言的语法分析程序的设计与实现;   (3) 学会程序设计语言的语义分析程序的设计与实现;   (4) 学会将程序设计语言的语句翻译为中间语言的完整实现过程。 * 第十章 上机实验内容 第十章 上机实验内容 10.1 实验一 编译程序的分析与验证 10.2 实验二 算术表达式的扩充 10.3 实验三 添加新的程序语句(一) 10.4 实验四 添加新的程序语句(二) 10.5 编译原理课程设计 * 第十章 上机实验内容

文档评论(0)

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

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

1亿VIP精品文档

相关文档