问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

吉林大学编译原理:词法分析器的实现详解

创作时间:
作者:
@小白创作中心

吉林大学编译原理:词法分析器的实现详解

引用
CSDN
1.
https://blog.csdn.net/weixin_73587775/article/details/142188509

词法分析器是编译器的重要组成部分,负责将源程序的字符序列转换为token序列,并检查词法错误。本文详细介绍了词法分析器的实现方法和注意事项,并附有相关练习题及其答案解析,适合对编译原理感兴趣的读者学习参考。

词法分析器实现前的准备

  • 明确词法分析器的接口
    两种形式:
    1. 词法分析程序作为编译器的独立一遍
    2. 词法分析程序作为语法分析程序的一个子程序

  • 确定单词的token结构
    至少包括单词的类型(语法信息)、单词的内容(语义信息)

词法分析器的具体实现

  • 在词法分析过程中,词法分析器根据词法规则(由正则表达式和自动机描述)检查源程序中是否含有词法错误,并生成源程序的token序列
  • 当单词为保留字或特殊符号时,token内容不填

实现词法分析器的注意事项

  • 保留字和保留字表
  • 复合单词识别
  • 数的转换:将数字字符串转换成数
  • 向前看若干个字符处理
  • 控制字符的处理:不能直接删除回车换行,可以删空格tab
  • 注释处理

练习题

  1. 【单选题】词法分析器的输入是( )
    A. 单词符号串
    B. 源程序
    C. 语法单位
    D. 目标程序

正确答案:B
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,因此词法分析器的输入是源程序。

  1. 【单选题】作为语法分析程序子程序的词法分析程序,它的返回结果是( )
    A. 单词属性值
    B. 单词在符号表中的位置表示法
    C. 单词的种别编码和语义值
    D. 单词的种别编码

正确答案:C
答案解析:当词法分析程序作为语法分析器的子程序存在时,语法分析器的每次调用,词法分析器都会返回一个token,token是单词的机内表示,包含单词的种类信息和语义值。

  1. 【单选题】将编译程序分成若干个“遍”是为了( )
    A. 利用有限的机器内存并提高机器的执行效率
    B. 使程序的结构更加清晰
    C. 提高程序的执行效率
    D. 利用有限的机器内存但降低了机器的执行效率

正确答案:B
答案解析:所谓“遍”就是对源程序或源程序的中间表示形式从头到尾扫描一次,并作加工处理,生成新的中间结果或目标程序。编译程序分成若干“遍”,实际就是编译程序对源程序或其等价的中间代码扫描了若干次,每次都执行不同的功能,这样做的目的是编译程序的结构更加清晰。

  1. 【单选题】词法分析中能够发现以下( )错误。
    A. 操作数类型不匹配
    B. 标识符重复声明
    C. 程序中出现非法符号
    D. 除法溢出

正确答案:C
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,以上错误中,只有非法符合属于词法错误。

  1. 【单选题】编译程序中的语法分析器接受以 为单位的输入,并产生有关信息供以后各阶段使用。
    A. 表达式
    B. 产生式
    C. 单词
    D. 语句

正确答案:C
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,因此语法分析器接受以单词(由字符组成)为单位的输入。

6.【单选题】在词法分析阶段不能识别的是( )。
A. 标识符
B. 运算符
C. 四元式
D. 常数

正确答案:C
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,token中包含了单词的种类信息,四元式不属于单词,所以在词法分析阶段无法识别。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号