编译关键技术试验参考指导书.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

《编译技术》实验指引书

湘潭大学信息工程学院

计算机工程系

何春梅

-09-01

实验学时阐明

《编译技术》课总学时为32/8学时,其中实验学时为8学时,学时分派为:前三个实验是必做实验:其中DFA模仿程序2学时、DFA化简2学时、LL(1)文法判断程序4学时。背面3个实验为学生依照自己安排选做实验。

目录

实验1DFA模仿程序1

实验2DFA化简2

实验3LL(1)文法判断程序4

实验4基于预测分析表法语法分析程序(1)5

实验5基于预测分析表法语法分析程序(2)6

实验6中间代码生成:逆波兰式产生与计算8

实验1词法程序设计——DFA模仿程序

一、实验目

通过实验教学,加深学生对所学关于编译理论知识理解,增强学生对所学知识综合应用能力,并通过实践达到对所学知识进行验证。通过对DFA模仿程序实验,使学生掌握词法分析实现技术,及详细实现办法。通过本实验加深对词法分析程序功能及实现办法理解。

二、实验环境

供Windows系统PC机,可用C++/C#/Java等编程工具编写

三、实验内容

1、定义一种右线性正规文法,示例如(仅供参照)

G[S]:S→aU|bVU→bV|aQ

V→aU|bQQ→aQ|bQ|e

实验前要考虑清晰用哪种数据构造存储上述文法。

2、构造其有穷拟定自动机,如

3、运用有穷拟定自动机M=(K,Σ,f,S,Z)行为模仿程序算法,来对于任意给定串,若属于该语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要么能停止并回答“不是”。

K:=S;

c:=getchar;

whileceofdo

{K:=f(K,c);

c:=getchar;};

ifKisinZthenreturn(‘yes’)

elsereturn(‘no’)

四、实验方式与规定

1、每位同窗定义语言或文法不同,上机编程实现

2、实验报告格式规定书写要点:概要设计(总体设计思想);详细设计(程序主流程、自动机存储格式、核心函数流程图);成果分析(输入与输出成果、存在问题及有待改进善地方、实验心得)。

实验2DFA(拟定有穷自动机)化简

实验目与规定

通过设计、编写和调试将拟定有穷自动机状态数变为至少C程序,使得学生掌握化简为有穷自动机过程中有关概念和办法。DFA体现形式可觉得表格或图形。

问题描述

每一种正规集都可以由一种状态数至少DFA所辨认,这个DFA是唯一(不考虑同构状况)。任意给定一种DFA,依照如下算法设计一种C程序,将该DFA化简为与之等价最简DFA。

算法

(1)构造具备两个组状态集合初始划分I:接受状态组F和非接受状态组Non-F。

(2)对I采用下面所述过程来构造新划分I-new.

ForI中每个组Gdo

Begin

当且仅当对任意输入符号a,状态s和读入a后转换到I同一组中;/*最坏状况下,一种状态就也许成为一种组*/

用所有新形成小组集代替I-new中G;

end

(3)如果I-new=I,令I-final=I,再执行第(4)步,否则令I=I=new,重复环节(2)。

(4)在划分I-final每个状态组中选一种状态作为该组代表。这些代表构成了化简后DFAM'状态。令s是一种代表状态,并且假设:在DFAM中,输入为a时有从s到t转换。令t所在组代表是r,那么在M’中有一种从s到r转换,标记为a。令包括s0状态组代表是M’开始状态,并令M’接受状态是那些属于F状态所在组代表。注意,I-final每个组或者仅含F中状态,或者不含F中状态。

(5)如果M’具有死状态(即一种对所有输入符号均有刀自身转换非接受状态d),则从M’中去掉它;删除从开始状态不可到达状态;取消从任何其她状态到死状态转换。

四、基本规定

1、输入一种DFAM,输出一种与之等价最小化DFAM’,上机编程实现。

2、实验报告格式规定书写要点:

概要设计(总体设计思想);

详细设计:程序主流程、DFA存储格式(即数据构造)、核心函数流程图;

成果分析(输入与输出成果、存在问题及有待改进善地方、实验心得)

五、测试数据

输入下图DFAM,得到其最简DFAM’。

DFAM

实现提示:

可将输入DFA存储在外部文本文献中,也可以直接从NFA转换得到。对DF

文档评论(0)

180****1080 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档