没有合适的资源?快使用搜索试试~ 我知道了~
首页编译原理词法分析器语法分析器实验报告
编译原理词法分析器语法分析器实验报告

《编译原理》是国内外各高等院校计算机科学技术类专业,特别是计算机软件专业的一门重要专业课程。该课程系统地向学生介绍编译程序的结构、工作流程及编译程序各组成部分的设计原理和实现技术。由于该课程理论性和实践性都比较强,内容较为抽象复杂,涉及到大量的软件设计算法,因此,一直是一门比较难学的课程。为了使学生更好地理解和掌握编译技术的基本概念、基本原理和实现方法,实践环节非常重要,只有通过上机进行程序设计,才能使学生对比较抽象的教学内容产生具体的感性认识,增强学生综合分析问题、解决问题的能力,并对提高学生软件设计水平大有益处。 本实验内容可在《编译原理》课程教学的同时,安排学生进行相关的实验。实验平台可选择在MS-DOS或Windows操作系统环境,使用C/C++的任何版本作为开发工具。学生在做完试验后,应认真撰写实验报告,内容应包括实验名称、实验目的、实验要求、实验内容、测试或运行结果等。
资源详情
资源评论
资源推荐

编译技术课程设计
班 级
学 号
姓 名
指导老师
二零一零年 七 月

一、目的
<<编译技术>>是理论与实践并重的课程,而其实验课要综合运用一、二年级所学的
多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、
语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和
设计的能力,进一步培养学生的独立编程能力。
二、任务及要求
基本要求:
1. 词法分析器 产生下述小语言的单词序列
这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表:
单词符号 种别编码 助记符 内码值
DIM
IF
DO
STOP
END
标识符
常数(整)
=
+
*
**
,
(
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$DIM
$IF
$DO
$STOP
$END
$ID
$INT
$ASSIGN
$PLUS
$STAR
$POWER
$COMM
A
$LPAR
$RPAR
-
-
-
-
-
-
内部字符串
标准二进形式
-
-
-
-
-
-
对于这个小语言,有几点重要的限制:
首先,所有的关键字(如 IF WHILE﹑ 等)都是“保留字”。所谓的保留字的
意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对
禁止的:
IF(5)=x
其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标示符来
处理。也就是说,对于关键字不专设对应的转换图。但把它们(及其种别编
码)预先安排在一张表格中(此表叫作保留字表)。当转换图识别出一个标识
符时,就去查对这张表,确定它是否为一个关键字。

再次,如果关键字、标识符和常数之间没有确定的运算符或界符作间隔,
则必须至少用一个空白符作间隔(此时,空白符不再是完全没有意义的了)。
例如,一个条件语句应写为
IF i>0 i= 1;
而绝对不要写成
IFi>0 i=1;
因为对于后者,我们的分析器将无条件地将 IFI 看成一个标识符。
这个小语言的单词符号的状态转换图,如下图:
2. 语法分析器 能识别由加+ 减- 乘* 除/ 乘方^ 括号()操作数所组成的算
术表达式,其文法如下:
E→E+T|E-T|T
T→T*F|T/F|F

F→P^F|P
p→(E)|i
使用的算法可以是:预测分析法;递归下降分析法;算符优先分析法;LR
分析法等。
3. 中间代码生成器 产生上述算术表达式的中间代码(四元式序列)
三、实现过程说明
给出各题目的详细算法描述,数据结构和函数说明,流程图。
1、词法分析器的流程图

2、语法分析器主程序图
剩余33页未读,继续阅读















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

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

评论3