理论教育 计算机导论:词法分析

计算机导论:词法分析

时间:2023-11-09 理论教育 版权反馈
【摘要】:图6.51编译的各个阶段词法分析阶段是编译过程的第一个阶段。我们知道,标识符用于表示变量名,可以很方便地使用id1,id2和id3分别表示sum,first和count三个标识符的内部形式,那么经过词法分析后上述程序片段中的赋值语句:sum∶=first﹢count10则表示为id1∶=id2﹢id310词法分析阶段的任务是读字符流的源程序,从中识别并构成单词。

计算机导论:词法分析

图6.51 编译的各个阶段

词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符具有集体含义。比如标识符用于表示变量名,是由字母字符开头,后跟字母、数字字符的字符序列组成的一种单词。保留字(关键字或基本字)是一种单词,此外还有算符、界符等。例如某源程序片段如下:

begin var sum,first,count:real;sum∶=first﹢count∗10 end.

词法分析阶段将构成这段程序的字符组成了如下19个单词序列:

•保留字begin

•保留字var

•标识符sum

•逗号,

•标识符first

•逗号,

•标识符count

•冒号:

•保留字real

•分号;

•标识符sum

赋值号∶=

•标识符first

•加号﹢

•标识符count

•乘号∗

•整数10

•保留字end

•界符·

可以看出,五个字符即b,e,g,i和n构成了一个称为保留字的单词begin,两个字符即“:”和“=”构成了表示赋值运算的符号“∶=”。这些单词间的空格在词法分析阶段都被过滤掉了。

我们知道,标识符用于表示变量名,可以很方便地使用id1,id2和id3分别表示sum,first和count三个标识符的内部形式,那么经过词法分析后上述程序片段中的赋值语句:

sum∶=first﹢count∗10则表示为id1∶=id2﹢id3∗10

词法分析阶段的任务是读字符流的源程序,从中识别并构成单词。

一个Pascal源程序片段:position:=initial﹢rate∗60;词法分析后可能返回:(www.daowen.com)

单词类型 单词值

标识符position

算符(赋值):=

标识符initial

算符(加)﹢

标识符rate

算符(乘)∗

整数60

界符(分号);

一个C源程序片段:

int a;

a=a﹢2;

词法分析后可能返回:

单词类型 单词值

保留字int

标识符a

界符;

标识符a

算符(赋值)=

标识符a

算符(加)﹢

整数2

界符;

有关的英文:

词法分析——lexical analysis或者scanning

单词——token

保留字——reserved word

标识符——identifier(user-defined name)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈