- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理综实验指导书
编译原理综合实验指导书
序言
《编译原理综合实验》作为《编译原理》课程的延伸,其目的是让同学动手设计和实现一个简单语言的编译器和解释器。通过上机实践,来设计这个相对完整的编译器设计,一方面可以使学生增加对编译程序的整体认识和了解——巩固《编译原理》课程所学知识,另一方面,通过上机练习,学生也可以学到很多程序调试技巧和设计大型程序一般的原则,如模块接口的协调,数据结构的合理选择等等。
一、上机实践要求
综合实验的成绩占总成绩的30%;
本次实验的所有代码都需要自行编码实现,不能2016-6-20;
本次综合实验须经授课教师当面验收考核后才予评分,否则以缺交处理;
实验结束后提交:源代码和实验报告。
实验报告的格式参见“实验报告模板”。
注:实验报告中不要贴代码。
二、实验内容:
(一) 词法分析程序的设计与实现:20分
要求:设计一个词法分析程序,每调用一次就从源程序文件中顺序识别出一个单词符号。
单词种类与识别规则
标识符:首字符为字母或’#’,其后由字母、数字或’#’组成;
整 数:由一个或多个数字组成、带正负号的数字串,首位数字不能为0;
小 数:[+|-] 正整数1 ·正整数2
[+|-]:表示可选的+或-
注意:正整数1不能为空,正整数2可以为空,例如:23.
字符串:由一对双引号括起来的文本
注意:字符串不需要支持多行,即假定任意一串字符串都不能超过一行;
字符串不需要支持转义符。
保留字:class、if、then、else、call、while、do、string、integer、float、
单目运算符:+ - * / =
双目运算符:= = ==
⑧ 布尔运算符: ||
⑨ 界符: ( ) { } , ;程序— [类]
类— class id { [属性|方法] }
属性— 变量定义语句
方法— 数据类型 id ( 参数列表 ) 语句块
参数列表— 数据类型 id [,数据类型 id]
| ε
语句块— { [语句] }
语句— 分支语句
| 赋值语句| 循环语句| 函数调用语句
| 变量定义语句
| 语句块
|ε
变量定义语句— 数据类型 id [ , id ] ;
数据类型— integer | float | string | class id
赋值语句— id= 表达式函数调用语句— call id ( 传递参数 ) ;
传递参数— id [ , id ]
| ε
分支语句— if 布尔表达式语句if 布尔表达式语句 else 语句循环语句— while布尔表达式语句表达式— 项 +|- 项项— 因子*|/ 因子 ]因子— id | con || ( 表达式)
14. 布尔表达式— 关系表达式 | || 布尔表达式关系表达式— 表达式 关系 表达式关系— | = | | = ||
说明:
(1) id是标识符;con是整数常量;deci是小数常量;
(2) 用左右尖括号括起来的是非终结符;
(3) 红色方括号[ ]相当于正则表达式中的()*,表示其中内容重复0次或N多次;
(4) 文法中用蓝色标注的都是终结符(即单词);
(5) 文法中与||不存在优先级,两者优先级别一样,按左结合处理。
1、 基原理:
递归下降法是语法分析中最易懂的一种方法。它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,其中终极符产生匹配命令,而非终极符则产生过程调用命令。因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。其中子程序的结构与产生式结构几乎是一致的。
注意:每次进入子程序之前都预先读入下一个要分析的单词(而且是由调用程序完成的,切忌在进入子程序后才读入下一个单词,虽然这样语法效果是相当的,但运行时会出错的)。
因为使用了递归下降方法,所以程序结构和层次清晰明了,易于手工实现,且时空效率较高。实际的语法分析工作,从调用总程序的分析子程序开始,根据产生式进行递归调用各个分析子程序。
(三) 类型检查程序的设计与实现:20分
要求:
(1)检查变量的定义和使用是否正确:变量是否重复定义、变量是否未定义就使用;
(2)过程的名称是否重复定义;
(3)过程的实参与形
您可能关注的文档
- 红色文艺复丽江旅行画册PPT模板.pptx
- 级材料成型与控制技术业人才培养方案.doc
- 红酒酒庄葡萄酒酒PPT模板.pptx
- 红色简约务工作总结PPT模板.pptx
- 纳税服务范考试题.doc
- 线上供应金融业务.doc
- 线记2__110千伏线路工程塔基础开挖检查记录表.docx
- 纪念918勿忘国耻爱教育PPT模板.pptx
- 组织氛围、场孤独感与工作满意度的关系研究.docx
- 细石混凝土面施工技术交底.doc
- 《JJF 2132-2024荧光紫外灯人工气候老化试验装置校准规范:辐射照度参数》.pdf
- JJF 2120-2024轮速传感器校准规范.pdf
- 计量规程规范 JJF 2120-2024轮速传感器校准规范.pdf
- 《JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数》.pdf
- JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数.pdf
- 《JJF 2120-2024轮速传感器校准规范》.pdf
- JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
- JJF 2116-2024特定蛋白分析仪校准规范.pdf
- 《JJF 2116-2024特定蛋白分析仪校准规范》.pdf
- 计量规程规范 JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
文档评论(0)