下载此文档

编译原理词法分析论文.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
编译原理结课论文
题目: 词法分析器

作者: 丁燕
电话:
Email: @
教师: 肖少拥、吴刚
递交日期: 2013 年 11 月 28 日

目录
一、引言 1
二、基于c 语言词法分析器的设计 1
1
2
2
2
词法分析程序的功能: 2
: 2
三、基于c 语言词法分析器的实现 3
: 3
: 3
4
4
4
4
四、词法分析程序的C语言程序源代码 5
五、结果分析: 10
六、结束语 11
参考文献 12
一、引言
计算机系统与人信息交换界面多数是应用高级语言来实现。一个高级语言程序的实现,必须依赖于相应的编译系统。所谓编译程序就是指能够把某一种语言程序转换成另一种与之等价的语言程序。它通常包括五个阶段:词法分析,语法分析,语义分析与中间代码的产生、优化,目标代码的生成。完成计算机翻译过程的关键阶段,它为后面的语法分析、语义分析做好准备,打好基础,以便快速地、高质量地生成目标语言程序。因此词法分析是编译的基础。
二、基于c 语言词法分析器的设计

在编译程序工作的五个阶段中,每个阶段都必须遵从功能等价的原则。词法规则与语法分析阶段依据的语法规则一同构成了一个语言的语法,而语法则是从"形"的角度衡量一个程序是否合法。所以在词法分析阶段,词法规则成为重要的研究对象。词法分析器所处理的对象即词法分析程序的输入数据,实际上是源程序经过编译预处理,去掉多余的符号后而形成的代码,这样给词法分析带来方便。词法分析的过程是线性的从头至尾扫描一遍,复杂度较低,易实现。

在计算机翻译中,词法分析的关键之一在于如何识别单词的种类,特别是面对定义形式一样、结构完全相同的标识符和保留字,如何正确地解决对它们的识别处理,是词法分析中的一项重要任务。由于我们规定的c 语言程序语句中涉及单词较少,故在词法分析阶段忽略了单词输入错误的检查,而将编译程序的重点放在中间代码生成阶段。词法分析器的功能是输入源程序,输出单词符号。规定输出的单词符号格式为如下的二元式:(单词种别,单词自身的值)。通常一种程序语言中定义的单词种类包括标识符(identifier)、保留字(reservedw ord) 、常数(literal)、运算符(op erator)、界符等。C 语言中定义了属于这五种类型的大量的单词,但是由于预编译器只识别我们自定义的注释,因此预编译器处理的单词集只是C 语言中定义的单词集的一个真子集。


从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序转换成为单词符号串的中间程序。词法分析程序的输出结果是组成语言的基本元素即单词,
在实际处理的时候,输出并非单词,而是每个单词对应的二元式,形为<单词种别,单词符号的属性>,编码的方式由编译系统的研制者决定。故经过词法分析,在输出结果中并没有单词本身。
词法分析程序的功能:
输入:所给文法的源程序字符串。
输出:二元组(syn,token或sum)构成的序列。
其中:syn为单词种别码;
token为存放的单词自身字符串;
sum为整型常数。
例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列:
(1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)……
:
各种单词符号对应的种别码
单词符号
种别码
单词符号
种别码
bgin
1
:
17
If
2
:=
18
Then
3
<
20
wile
4
<>
21
do
5
<=
22
end
6
>
23
lettet(letter|digit)*
10
>=
24
dight dight*
11
=
25
+
13
;
26

14
(
27
*
15
)
28
/
16
#
0
三、基于c 语言词法分析器的实现
本词法分析器是基于c 语言编写,即它本身程序由c 语言编写并且它能识别的源程序单词串也是c 语言编写的源程序。本程序编辑环

编译原理词法分析论文 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人glfsnxh
  • 文件大小277 KB
  • 时间2018-02-22