【Compiler】-4-词法分析程序
词法分析程序
任务
从左至右扫描源程序的字符串,按照词法规则识别出一个个正确的单词,并转换为相应的二元式(类号,内码)形式,交给语法分析使用。
- 输入缓冲区中可以会有预处理
预处理原因:
- 对空行、回车、空格、注释进行过滤
- 一行语句结束应配上一个特殊字符说明,如分号“;”
- 有些语言要识别标号区,区分标号语句,找出续行符连接成完整语句等
超前搜索
- 一般高级语言不必超前搜索,但有些对关键字不加保护的语言,单词间没有明确界符,要在上下文环境中识别单词,这时需要超前搜索。
单词分类
- 基本字(关键字、保留字),设置基本字表,每个基本字占有一个类号,内码缺省;
- 标识符: 变量名、数组名、函数名、过程名―常量,动态填写标识符表。
- 各种标识符统一为一类,由内码来区分不同的标识符名。通常将
各标识符的符号表入口地址作为其内码
。 - 对于常量,以常量的数据类型区分不同类号。对每一类(整数、浮点数)设置相应常量表。各常量在其
常量表中的入口地址作为其内码
。 - 运算符:设置运算符表
- 界符:. , ; ( ):等。有时把运算符也当作界符。设置界符表
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 lthero!
评论