词法分析依据的是

ads

什么是词法分析?

词法分析是编译原理中一个重要的部分,也叫做 字面翻译(Literal Translation),用于把源程序中的单词转换成 形式化语言(formal languages) 中的有效单词。词法分析的目的是把输入的字符流分割成有意义的词素(Token),构成一个 词法单元(Lexical Unit),这个分析过程称为词法分析。

词法分析是编译器的一个重要过程,它的输入是一个符号流(以字符的形式),输出是拆分成有意义的词素,可以对符号流施加上语义上的约束,可以有效的检测出程序中出现的语法错误等。

词法分析的基本概念

词法分析的基本概念是由标记,记号,字符和词素组成的。

标记(tag) 是识别一类特殊标记的函数,如一个空格,一个分号,等等。记号(symbol) 指一系列字符的集合,比如一个字母,一个关键字,一个标识符等。字符(character) 指原始的符号,比如英文字母abc、数字123等等。词素(Token) 是源程序中的一个有意义的词,比如变量名、关键字等等。词法分析器就是把源程序中每一个字符重新组合成有意义的词素。

例子

下面这段源程序代码:

//计算2+2的和 #include<stdio.h> int main() {     int result=2+2;     printf(“2+2=%dn”,result);     return 0; }

它的词法分析结果如下:

Token 含义
#include 关键字
<stdio.h> 标识符
int 关键字
main 标识符
( ) 操作符
{ } 操作符
int 关键字
result 标识符
= 操作符
2 数字常量
+ 操作符
2 数字常量
; 操作符
printf 标识符
( ) 运算符
“,result” 字符串常量
; 操作符
return 关键字
0 数字常量
; 操作符
} 操作符

我们再看一段示例代码。

//A sample C program#include <stdio.h>
int main(void) { printf("Hello world!n"); return 0;}

它的分析过程如下:

1.首先使用注释忽略第一行;2.第二行的include是一个关键字,表明要引入外部代码;3.第三行的int是一个关键字,表示main函数的返回类型;4."main"是一个标识符,表示函数的名称;5."("和")"分别是一个界定符,标识main函数的开始和结束;6."printf"是一个标识符,表示调用函数;7."("和")"分别是一个界定符,标识调用函数的开始和结束;8."'Hello world!n'"是一个字符串,表示要输出的内容;9."return 0"是一个关键字,表示函数的返回值。

由此可见,词法分析就是把有意义的单词进行分离,从而将源代码中的抽象概念抽象成具体的有意义的单词,使得编译器可以处理和理解它们,并为程序准备好解释和执行步骤。

本文由 AI 生成。


最后编辑于:2024/1/21 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com