一: 词法分析
词法分析的主要任务:
从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型
将识别出的单词转换成统一的机内表示——词法单元(token)形式
token:<种别码,属性值>
| 单词类型 | 种别 | 种别码 |
|---|---|---|
| 关键字 | program.if、 else、then、… | 一词一码 |
| 标识符 | 变量名、数组名、记录名、过程名、… | 多词一码 |
| 常量 | 整型、浮点型、字符型、布尔型、… | 一型一码 |
| 运算符 | 算术(± * │++ – )关系(> <== != >= <= )逻辑(&|~) | 一词一码或一型一码 |
| 界限符 | ; ()= { }… | 一词一码 |
二:语法分析
语法分析的主要任务:
语法分析器(parser)从词法分析器输出的token序中识别出各类短语,并构造语法分析树(parse tree)
eg:

三:语义分析
语义分析的主要任务:
1.收集标识符的属性信息:
种属,类型,存储长度,存储位置,值,作用域,参数和返回信息
2.语义检查
本文深入探讨了程序分析的三个关键阶段:词法分析识别单词并转化为词法单元,语法分析通过词法单元构造语法分析树,以及语义分析收集标识符属性并进行语义检查,确保程序的正确性。
1413

被折叠的 条评论
为什么被折叠?



