编译技术课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编译技术课程设计

一、目的

<<编译技术>>是理论与实践并重的课程,而其课程设计要综合运用一、二年级所学的多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和设计的能力,进一步培养学生的独立编程能力。

二﹑题目

题目1 表达式的小型编译器

题目2 程序的小型编译器

题目3 输入文法,自动生成分析表,并完成语法分析工作。

因时间关系,只要求选做一个题目,请每位同学根据自己的情况选择难度适宜的题目来完成。

三、要求

题目1表达式的小型编译器

1.词法分析产生语言的单词序列

2.语法分析能识别由加+ 乘* 括号()操作数(变量或常数)所组成的算术表达式,其文法如下:

E→E+T|T

T→T*F|F

F→(E)|i

使用的分析方法可以是:递归下降分析法或LR分析法。

3.中间代码生成产生上述算术表达式的中间代码

4.错误处理给出错误信息

输入:算术表达式

输出:符号表,常数表。

递归下降分析法:递归调用过程

LR分析法:语义栈和符号栈

四元式序列

题目2程序的小型编译器

1.词法分析产生语言的单词序列

2.语法分析

(1)识别由加+ 乘* 括号()操作数所组成的算术表达式

(2)识别布尔表达式

(3)识别条件语句

(4)识别循环语句

3.中间代码生成产生包含上述语句的程序的中间代码

4.错误处理错误定位及出错信息

输入:程序

输出:符号表,常数表。

递归下降分析法:递归调用过程

LR分析法:语义栈和符号栈

四元式序列

题目3文法编译器的自动生成器

输入文法,自动生成分析表,并完成语法分析工作。

语法分析方法可以是:LL(1)分析法或LR分析法。

为文法构造分析表,并对输入串进行语法分析,判别是否符合语法规则,如果不符合,则输出错误信息。

输入:文法,文法符号串

输出:分析表、分析栈、分析结果

四、任务

题目1表达式的小型编译器

1.扩充单词

词法分析器可以识别题目(算术表达式)中包含的各类单词。

2.语法分析程序调用词法分析器

算术表达式里可以有变量、常数,而不是固定的i或以i开头的标识符。

3.增加语义分析

(1)递归下降分析法

语法制导翻译程序参考课本P135

定义:数据结构、函数、主程序、递归子程序

(2) LR分析法

语义子程序参考课本P110

分析表参考《习题解析与上机指导》P88

定义:数据结构、函数、分析表、控制程序、语义子程序

4.出错处理

给出错误信息

题目2程序的小型编译器

1.扩充单词

词法分析器可以识别题目(算术表达式、布尔表达式、条件语句、循环语句)中包含的各类单词。

2.语法分析程序调用词法分析器

3.增加语义分析

(1)布尔表达式的语法制导翻译

语义子程序参考课本P114

分析表参考《习题解析与上机指导》P89

定义:数据结构、函数、分析表、控制程序、语义子程序

(2)控制结构的语法制导翻译

语义子程序参考课本P120

分析表参考《习题解析与上机指导》P90

定义:数据结构、函数、分析表、控制程序、语义子程序

4.出错处理

给出错误信息

题目3文法编译器的自动生成器

1.接收输入的文法,构造语法分析表

LL(1)分析法语法分析表参考实例P53

LR分析法语法分析表参考实例P71

2.对输入的文法符号串,进行语法分析

LL(1)分析法分析过程参考实例P54

LR分析法分析过程参考实例P72

五、实验环境

开发环境VC++;Visual Studio;Java开发环境

语言C;C++;C#;Java

说明:课程设计可以使用任何一种语言工具,课程设计报告中请按照自己实际采用的开发工具及技术来写。

六、考核

采取上机演示和提问的考核方式。

出勤率+课程设计报告+其他=综合评定成绩。

其他评定的标准如下:

1.回答问题的正确。(主要考核该设计是否为自己独立完成,或对设计理解掌握的程度)

2.完成任务的多少;质量的高低。

3.完成设计的速度,先完成的分数高;后完成的分数低。

4.根据完成较高要求的多少,酌情加分。

课程设计结束:

1. 提交资料——课程设计报告+源程序;

2. 将课程设计报告和源程序的电子文档压缩成一个压缩包,压缩包文件的命名规则:班级+学号(末2位)+姓名(例如:计算机110101孙亚楠)

3. 将压缩包上传至FTP服务器,同时将打印的课程设计报告(用A4纸打印)上交班长,班长收齐后交给任课教师。

地址:ftp://202.195.168.13/up/编译课程设计/计算机1101-2,网络1101-2

用户名:nianyi

密码:123456

相关文档
最新文档