2024年5月31日发(作者:)
词法分析
***
摘 要:
词法分析(lexical analysis)是计算机科学中将字符序列转换为单词(Token)序列的过程。进行词法分析的程
序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的
形式存在,供语法分析器调用。
关键词:
词法分析 标识符
计算机系统与人信息交换界面多数是应用高级语言来实现。一个高级语言程序的实现,必须依赖
于相应的编译系统。所谓编译程序就是指能够把某一种语言程序转换成另一种与之等价的语言程序。
它通常包括五个阶段:词法分析,语法分析,语义分析与中间代码的产生、优化,目标代码的生成。完成
计算机翻译过程的关键阶段,它为后面的语法分析、语义分析做好准备,打好基础,以便快速地、高质
量地生成目标语言程序。因此词法分析是编译的基础。
词法分析器所处理的对象即词法分析程序的输入数据,实际上是源程序经过编译预处理,去掉多
余的符号后而形成的代码,这样给词法分析带来方便。词法分析的过程是线性的从头至尾扫描一遍,
复杂度较低,易实现。
一、实验目的
设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。
二、实验要求
2.1 待分析的简单词法
(1).关键字:
begin if then while do end lishuman lishuman2015041886
所有的关键字都是小写。
(2).运算符和界符 : = + - * / ( ) [ ] { } , : ; > < > = < = = = !
(3).其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:
ID = letter (letter | digit)*
NUM = digit digit*
(4).空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法
分析阶段通常被忽略。
2.2 各种单词符号对应的种别码
表2-2种别码
单词符号
begin
if
then
while
do
end
lishuman
lishuman2015041886
letter (letter | digit)*
digit digit*
=
+
-
*
/
2.3 词法分析程序的功能
种别码
1
2
3
4
5
6
7
8
10
11
21
22
23
24
25
单词符号
(
)
[
]
{
}
,
:
;
>
<
> =
< =
= =
!
种别码
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
输入:所给文法的源程序字符串。
输出:二元组(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)……
2.4识别语言单词的状态转换图
识别语言单词的状态转换图如下图2-4所示:状态0为初态,凡带双圈者为终态。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1717098597a2733835.html
评论列表(0条)