《编译原理》课程设计()秋骆婷由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“编译原理课程设计”。
《编译原理》课程设计
一.课程设计目的通过课程设计,真正掌握设计和构造编译程序的基本原理和常用的编译技术,具备系统软件调试能力和开发能力,培养分析问题和解决问题的能力。
二.课程设计的要求
选择课程设计题目(6选1),提交一份课程设计报告,内容主要包括:设计要求、对题目描述问题的需求分析、算法描述、程序结构、主要变量及函数说明、设计中遇到的主要问题及解决过程、设计技巧、测试结果分析和心得体会等。附程序使用说明、程序清单。
三.课程设计题目
(一)正规式自动转换成DFA系统的设计与实现
编制和调试一个程序,它将用户输入的正规式转换为以状态图和矩阵形式表示的确定有穷自动机。
1.把正规式转换为NFA
2.将NFA确定化为DFA
·#作为正规式的终止符
·考虑复合正规式
·开始状态号为0
(二)赋值语句翻译系统的设计与实现
对以下文法,采用算符优先分析法,对G[S]所定义的赋值语句进行语法分析,并在语法分析过程中将所输入的赋值语句翻译为四元式。(可选用以下两种方法中的一种产生算符优先关系矩阵)
1.直接输入根据已知文法构造的算符优先关系矩阵。
2.输入已知文法的FIRSTVT和LASTVT集合,由程序自动生成该文法的算符优先关系矩阵。
S → A
A → V:=E
E → E + T | T
T → T * F | F
F →(E)| i
V → i
(三)简单语言翻译系统的设计与实现
设有文法G[P]:
P → beginZend
Z → Z;S |S
S → I := E
| ifBthenSelseS
| whileBdoS
E → E + E | E-E | E * E | E / E |(E)| I | C
B → E ROP E
ROP → | | >= |
I → IL | ID | L
L → A | B | C |......| X | Y | Z
C → CD | D
D → 0 | 1 | 2 |......| 9
试采用SLR分析法,对G[P]所定义的语言进行语法分析,并生成四元式(逆波兰式)中间代码。(可选用以下两种方法中的一种产生分析表)
1.直接输入根据已知文法构造的SLR(1)分析表;
2.输入已知文法的项目集规范族C={ I0,I1,......,In}和转换函数GO(Ii,a)=Ij,由程序自动生成SLR(1)分析表。
·为便于进行语法制导翻译,对上述文法进行改写
·确定SLR(1)分析表的存放形式(ACTION,GOTO)
·设置分析栈
·确定文法存放形式
·词法分析中造标识符表
(四)赋值语句自上而下翻译系统的设计与实现
设有如下文法:
S → A
A → V:=E
E → E + T | T
T → T * F | F
F →(E)| digit
V → i
采用LL(1)分析法对所定义的赋值语句进行语法分析,并在语法分析过程中将所输入的赋值语句翻译为四元式。(可选用以下三种方法中的一种产生分析表)
1.直接输入根据已知文法构造的分析表M
2.输入已知文法的FIRST集合和FOLLOW集合,由程序自动生成分析表M
3.输入已知文法,由程序自动生成分析表M
(六)自由选题:利用编译技术完成一个应用,例如搜索引擎中的匹配;L-system的模拟植物等图形的构造等;与编译中的技术相关。
由于课程项目都有一定难度,参加编译原理课程设计的同学在暑假中完成程序的编写调试工作;开学后的设计时间用于部分收尾工作和最后检查。题目要求和难度有差别,请同学根据自身情况自行选择,不同的难度起评分有所不同。对题目有疑问请于放假前与骆婷老师联系:电话***,luoting@mail.hust.edu.cn,注明参加编译原理课程设计,最好以班为单位联系。
按班为单位提前将参加编译课程设计同学的名单、邮件地址及选题列表,发送到骆婷老师邮箱,时间:7月15日前。