实验指导书-编译原理

实验指导书-编译原理

ID:38699315

大小:62.50 KB

页数:17页

时间:2019-06-17

实验指导书-编译原理_第1页
实验指导书-编译原理_第2页
实验指导书-编译原理_第3页
实验指导书-编译原理_第4页
实验指导书-编译原理_第5页
资源描述:

《实验指导书-编译原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理实验教学指导书计算机科学与工程学院华南理工大学目录1实验简介32TINY+语言介绍42.1TINY+语言的词法定义42.2TINY+的语法定义52.3TINY+的语义定义72.4用TINY+语言编写的示例程序73实验1:实现TINY+语言的词法分析器93.1实验目的93.2实验要求103.3TINY+的测试程序及词法分析器的输出104实验2:实现TINY+的语法分析器、语义分析器以及中间代码生成器134.1实验目的134.2实验要求144.3TINY+示例程序及其输出14附录:和TINY+文法

2、规则对应的生成三地址中间代码的属性文法161实验简介学生在实验中,构造一个将TINY+高级程序设计语言转换为TINY+虚拟机上的中间代码的编译器。整个实验包括两个部分:实验一完成TINY+编译器的词法分析器部分;实验二完成TINY+编译器的语法分析器部分、语义分析器部分及中间代码生成器部分。每个同学必须独立完成自己的实验,与其他同学的讨论或合作是允许的,但必须是有限度的,可以互相交流想法和方法,但不能抄袭。学术不端将导致成绩为零。TINY+的编译器必须用C语言或C++语言实现(推荐使用Microsof

3、tVisualStudio)。2TINY+语言介绍实验定义了一种叫TINY+的高级程序设计语言,该语言是对TINY语言的一个扩充,TINY+比TINY增加了程序的声明部分,while语句,字符串类型定义等等,在本节的描述中,用蓝色字体标识的是TINY语言原有的词法及语法规定,而用红色字体标识的是TINY+语言扩充的词法及语法规定。本节主要是对TINY+语言的介绍,具体包括:1)TINY+语言的词法定义,包括对TINY+语言的单词(token)的描述;2)TINY+语言语法结构的EBNF描述;3)TIN

4、Y+语言主要的语义描述;4)TINY+的实例程序2.1TINY+语言的词法定义1.TINY+语言的关键字(keyword)包括:orandintboolcharwhiledoifthenelseendrepeatuntilreadwrite所有的关键字是程序设计语言保留使用的,并且用小写字母表示,用户自己定义的标识符不能和关键字重复。2.特殊符号的定义如下:><=>=,'{};:=+-*/()<=1.其他种类的单词包括标识符ID,数字NUM以及字符串STRING,他们的正规表达式的定义如下:ID=le

5、tter(letter

6、digit)*标识符是以字母开头,由字母和数字混合构成的符号串。NUM=digitdigit*TINY+中对数字的定义和TINY相同。STRING='anycharacterexcept''一个字符串类型的单词是用单引号括起来的字符串'…',引号内可出现除了'以外的任何符号。一个字符串不能跨行定义。letter=a

7、…

8、z

9、A

10、…

11、Zdigit=0

12、…

13、9小写和大写字母是不同的。2.空白包括空格、回车以及Tab。所有的空白在词法分析时,被当作单词ID,NUM以及保留字的分隔符,

14、在词法分析之后,他们不被当作单词保留。3.注释是用花括号括起来的符号串{…},注释不能嵌套定义,但注释的定义可以跨行。2.2TINY+的语法定义TINY+的语法用EBNF定义如下:1program->declarationsstmt-sequence2declarations->decl;declarations

15、ε3decl->type-specifiervarlist4type-specifier->int

16、bool

17、char5varlist->identifier{,identifier}6st

18、mt-sequence->statement{;statement}7statement->if-stmt

19、repeat-stmt

20、assign-stmt

21、read-stmt

22、write-stmt

23、while-stmt8while-stmt->whilebool-expdostmt-sequenceend9if-stmt->ifbool-expthenstmt-sequence[elsestmt-sequence]end10repeat-stmt->repeatstmt-sequenceuntilbo

24、ol-exp11assign-stmt->identifier:=exp12read-stmt->readidentifier13write-stmt->writeexp14exp->arithmetic-exp

25、bool-exp

26、string-exp15arithmetic-exp->term{addopterm}16addop->+

27、-17term->factor{mulopfactor}18mulop->*

28、/19factor->(arithmet

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

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

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