99《编译原理》课程设计_编译原理课程设计
99《编译原理》课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“编译原理课程设计”。
《编译原理》课程设计
《编译原理》课程设计
一、课程设计的目的通过课程设计,真正掌握设计和构造编译程序的基本原理和常用的编译技术,具备系统软件调试能力和开能力,培养分析问题和解决问题的能力。
二、课程设计的要求
根据选择的课程设计题目提交一份课程设计报告,内容包括:设计要求,算法描述,程序结构,主要变量说明,程序清单,设计技巧,结果分析,心得体会等。
三、课程设计题目
(一)、编制和调试一个程序,它将用户从键盘上输入的正规式转换为以状态和矩阵形式表示的确定的有穷自动机。
1、将正规式转换为NFA2、把NFA确定化为DFA
# 号作为输入正规式的终止符。
考虑复合正规式。
例如,从键盘输入10|(01|1)*0|1*#,输出为矩阵形式表示的DFA和状态
图。
开始符号为0。
(二)、1、试编写一个程序,用来计算给定文法的全部FIRST集及FOLLOW集,并判定所给文法是否LL(1)方法。
2、试编写一个程序,以给定文法作为输入,由程序自动生成文法的LL(1)分析表M。 确定文法的机内表示。
确定LL(1)分析表的存放方式。
(三)、1、试编写一个程序,用来计算机给定文法的FIRST集,LASTVT集,并判定所给文法是否算符优先文法。
2、试编写一个程序,以给定的方法作为输入,由程序自动生成文法的优先关系矩阵。 确定文法的机内表示。
确定优先关系矩阵的存放方式。
(四)、对以下文法,采用算符优先分析法,对G[S]所定义的赋值语句进行语法分析,并在语法分析过程中将所输入的赋值语句翻译为四元式。
1、直接输入根据已知文法构造的算符优先关系矩阵。
2、输入已知文法的FIRSTVT集和LASTVT集合,由程序自动生成该文法的算符优先
关系矩阵。
SA
AV := E
EE+T | T
TT * F | F
F(E)| i
Vi
确定所给文法的机内表示。
确定算符优先关系矩阵的存放方式。
(五)、设有文法G[P]:
Pbegin Z end
ZZ;S|S
SI:=E | if B then S else S
| while B do S
EE+E | E-E
| E*E
| E/E
|(E)
| I
| C
BE ROP E
ROP | >= |
IIL | ID | L
LA | B | C |……| X | Y | Z | a | b | c | ……| x | y | z
CCD | D
D0 | 1 | 2 | ……| 9
试采用SLR分析法,对G[P]所定义的语言进行语法分析,并生成四元式(逆波兰式)中间代码。
1、直接输入根据已知文法构造的SLR(1)分析表。
2、输入已知文法的项目集规范族C={I0,I1,……,In}和转换函数G0(Ii,a)=Ij,由程序自
动生成SLR(1)分析表。
为便于进行语法制导翻译,对上述文法进行改写。
确定SLR(1)分析表的存放形式。包括ACTION部分和GOTO部分。
设置分析栈
确定文法存放形式。
词法分析中造标识符表。
(六)、设有如下文法:
SA
AV:=E
EE+T|T
TT*F|F
F(E)|digit
Vi
试采用SLR分析法,对所定义 的赋值语句进行语法分析,并在分析过程中将所输入的赋值语句翻译为伪代码并解释执行。
1、直接输入根据已知文法构造的SLR分析表。
2、输入已知文法的项目集规范族C={I0,I1,……,In}和转换函数G0(Ii,a)=Ij,由程序自动生
成SLR(1)分析表。
确定文法的机内表示。
确定SLR(1)分析表的存放形式。包括ACTION部分和GOTO部分。
伪代码和寄存器个数由自己定。
(七)、根据(六)所给的文法,采用LL(1)分析法对所定义的赋值语句进行语法分析,并在语法分析过程中将所输入 的赋值语句翻译成四元式。
1、直接输入根据已知文法构造的分析表M。
2、输入已知文法的FIRST集和FOLLOW集,由程序自动生成分析表M。
3、输入已知文法,由程序自动生成分析表M。
文法左递归应改写文法的规则式。
确定文法的机内表示。
确定LL(1)分析表的存放方式。
四、参考文献:
1.《编译原理》,陈火旺等,国防工业出版社,1984
2.《编译程序构造方法》,邱玉圃等,科学出版社,1991
3.《数字计算机编译程序构造》,D.格里斯,科学出版社,1976
联系方式:Email:huhuaijin@21cn.com
Phone:23300562