没有合适的资源?快使用搜索试试~ 我知道了~
简单编译器 编译技术课程设计源代码及文档

温馨提示


试读
38页
处理用户提交的符合上述文法的源代码序列,生成四元式中间代码。 主要步骤 (1)画出识别上述语言单词的状态转换图 (2)用C/C++语言编写词法分析程序(应考虑能被语法分析程序调用) (3)预处理,去除注释、多余空格、回车换行符等 (3)设计实现语法分析程序(调用上述词法程序分析单词) (4)设计构造属性文法及中间代码序列结构 (5)采用语法制导翻译法,完成语义分析程序设计,生成四元式中间代码 (6)或将生成的四元式中间代码转换成X86平台上的目标代码 (7)设计若干用例,上机测试并通过所设计实现的编译器
资源推荐
资源详情
资源评论













软件工程 班和春辰编译技术课程设计
《编译技术》课程设计 实验报告
实验名称:编译器程序
姓名:和春辰
学号:U200818016
班级:软件工程 0801 班
指导老师:胡福林
2010 年 11 月 12 日
138

软件工程 班和春辰编译技术课程设计
目录
一、 课设要求
二、 总体设计思想
三、 详细算法设计
四、 流程框图
五、 函数相关说明
所有函数一览
!
"
#$
%&
'()*
+ '
六、 程序运行结果 ,
七、 编译器使用说明
八、 心得与体会
九、 源程序清单
238

软件工程 班和春辰编译技术课程设计
一、 课设要求
用 C 语言对下述文法和单词表定义的语言设计编制一个编译器。
()单词符号及种别表
单词符号 种别编码 单词值
-
#.
%
. '
. ,
../
内部字符串
0/1/ε/ε0/1/ε/ε
二进制数值表示
2
0
1
'
3
4 ,
5
6
62
7
72
22
82 '
()语法结构定义
<程序> ::= main()<语句块>
338

软件工程 班和春辰编译技术课程设计
<语句块> ::= ‘{‘<语句串>’}’ //程序用括号括起来
<语句串>::=<语句>{;<语句>};
<语句>::=<赋值语句>|<条件语句>|<循环语句>
<赋值语句>::=ID=<表达式> //赋值语句用”=”号
<条件语句>::=if<条件><语句块> //条件怎么没有括号,囧(自己加 1 个)
<循环语句>::=do <语句块>while <条件>
<条件>::=<表达式><关系运算符><表达式> //没有布尔运算,还算简单
<表达式> ::= <项>{ +<项>|-<项>}
<项> ::= <因子>{*<因子>|/<因子>}
<因子> ::=ID|num|(<表达式>)
9920/1/:数字
数字数字
/:0/1/:数字数字
/:
;<992字母字母/ 数字
字母992/#/=/&/>/?/*=/@
数字992//=/,
7关系运算符69927/72/6/62/22/82
二、 总体设计思想
采用递归下降(自上而下)的语法制导翻译法。
三、 详细算法设计
在前两次试验的基础上改进。词法分析程序语法分析程序语义分析程序编译
器。不断完善,不断改进。渐变的过程。
438

软件工程 班和春辰编译技术课程设计
四、 流程框图
图 I 主函数示意图
538
剩余37页未读,继续阅读

ErinToJerry
- 粉丝: 4
- 资源: 7
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
前往页