此项目为GXU编译原理课设,适合低要求,混及格同学,内涵完整代码(1k行+)、文件和论文(1w字+)
运行环境:eclipse
词法模块内容
(1)确定源语言C和编写编译程序的语言java;
(2)用正规式描述C的词法规则;
(3)根据正规式构造给出识别单词的DFA M;
(4)根据M,用语言java编写C的词法分析程序。
(5)读入源程序字符串,识别具有独立含义的最小语法单位——单词;
(6)对识别过程中发现的词法问题,则输出有关的错误信息;
语法模块内容
(1)本次实验中采用的设计方法是lr1,首先便是要设计好文法。
(2)能根据文法构造项目集族。
(3)再根据项目集族进行lr1分析表的构造,写成xls文件。
(4)设计程序读取lr1分析表.xls与文法.xls文件。
(5)根据这两个文件完成语法检查。
(6)对不正确的语法不能通过语法检查并要停留在这一步表明出错。
语义模块内容
(1)初设语法制导翻译,缕清语义程序的思路
(2)设计编写语义程序的全局属性
(3)设计编写语义程序的方法
(4)设计编写每个产生式对应的语义程序
(5)将语义程序得到的四元式表打印到文本中
代码结构
input.txt
为需要编译的c语言代码
|
|
output.txt
为词法分析后的输出结果
|
|
Lexer.java
为词法分析代码
|
|
lr1.xls
(人工操作)
grammar.xls
(人工操作)
lr1.java
语法分析代码,将词法分析后的txt文件进行语法检验,它需要用到lr1.xls、grammar.xls文件
截取部分运行结果
|
|
Semantics.java
语义分析代码
out.txt
四元组
|
|
Complie.java
产生汇编语言
|
|