吉林大学编译原理:词法分析器的实现详解
创作时间:
作者:
@小白创作中心
吉林大学编译原理:词法分析器的实现详解
引用
CSDN
1.
https://blog.csdn.net/weixin_73587775/article/details/142188509
词法分析器是编译器的重要组成部分,负责将源程序的字符序列转换为token序列,并检查词法错误。本文详细介绍了词法分析器的实现方法和注意事项,并附有相关练习题及其答案解析,适合对编译原理感兴趣的读者学习参考。
词法分析器实现前的准备
- 明确词法分析器的接口
两种形式:- 词法分析程序作为编译器的独立一遍
- 词法分析程序作为语法分析程序的一个子程序
- 确定单词的token结构
至少包括单词的类型(语法信息)、单词的内容(语义信息)
词法分析器的具体实现
- 在词法分析过程中,词法分析器根据词法规则(由正则表达式和自动机描述)检查源程序中是否含有词法错误,并生成源程序的token序列
- 当单词为保留字或特殊符号时,token内容不填
实现词法分析器的注意事项
- 保留字和保留字表
- 复合单词识别
- 数的转换:将数字字符串转换成数
- 向前看若干个字符处理
- 控制字符的处理:不能直接删除回车换行,可以删空格tab
- 注释处理
练习题
- 【单选题】词法分析器的输入是( )
A. 单词符号串
B. 源程序
C. 语法单位
D. 目标程序
正确答案:B
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,因此词法分析器的输入是源程序。
- 【单选题】作为语法分析程序子程序的词法分析程序,它的返回结果是( )
A. 单词属性值
B. 单词在符号表中的位置表示法
C. 单词的种别编码和语义值
D. 单词的种别编码
正确答案:C
答案解析:当词法分析程序作为语法分析器的子程序存在时,语法分析器的每次调用,词法分析器都会返回一个token,token是单词的机内表示,包含单词的种类信息和语义值。
- 【单选题】将编译程序分成若干个“遍”是为了( )
A. 利用有限的机器内存并提高机器的执行效率
B. 使程序的结构更加清晰
C. 提高程序的执行效率
D. 利用有限的机器内存但降低了机器的执行效率
正确答案:B
答案解析:所谓“遍”就是对源程序或源程序的中间表示形式从头到尾扫描一次,并作加工处理,生成新的中间结果或目标程序。编译程序分成若干“遍”,实际就是编译程序对源程序或其等价的中间代码扫描了若干次,每次都执行不同的功能,这样做的目的是编译程序的结构更加清晰。
- 【单选题】词法分析中能够发现以下( )错误。
A. 操作数类型不匹配
B. 标识符重复声明
C. 程序中出现非法符号
D. 除法溢出
正确答案:C
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,以上错误中,只有非法符合属于词法错误。
- 【单选题】编译程序中的语法分析器接受以 为单位的输入,并产生有关信息供以后各阶段使用。
A. 表达式
B. 产生式
C. 单词
D. 语句
正确答案:C
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,因此语法分析器接受以单词(由字符组成)为单位的输入。
6.【单选题】在词法分析阶段不能识别的是( )。
A. 标识符
B. 运算符
C. 四元式
D. 常数
正确答案:C
答案解析:词法分析器的功能是将源程序由字符序列转换等价的token序列,并检查源程序中的词法错误,token中包含了单词的种类信息,四元式不属于单词,所以在词法分析阶段无法识别。
热门推荐
手冲咖啡完全指南:从入门到精通
如何应对糖尿病足?日常可以这样做
浙江绍兴两名村民勇救落水者,陈金彪已是第三次救人
丁卯大运的八字特点:木火相生的运势周期
取模与取余运算法则,两者间有什么区别
“稳”字当头,返乡求职潮涌
八字看姻缘:真能决定你的婚姻吗?
CDN跨运营商问题解决方案:多线路、多节点优化策略详解
公司地址变更后社保怎么变更
中小学如何有效推进跨学科主题学习
面试中非语言因素的重要性:肢体语言和眼神交流的运用指南
危险源辨识与风险控制的基本步骤是什么?
最高超70%,机构看好这些个股上涨空间
秦始皇陵:世界文化遗产中的东方奇迹
有效沟通的六个要点是什么?如何应用到实际工作中
小额理财的方式有哪些?小资金怎么理财?
人民日报:九句如光般的诗句,句句都是人生至理
平均能瘦16.8公斤!“减肥神药”国内获批,用药需慎重
朱砂和辰砂的区别是什么?揭秘红色矿物界的“双胞胎”有何不同?
交通事故复核能申请几次?事故认定复核的流程
如何确定沙发与电视的最佳观看距离?
控制理论和优化理论的本质区别和联系是什么
为什么拖完地总有股腥臭味?真相竟然是……
这些呼吸系统病变,可选择哪些影像学检查?
WinForms、WPF和Electron:桌面应用开发技术栈深度对比
片仔癀虽好,但不适合养生保健
25周年|深度低碳化的工业引擎 驱动中国迈向零碳未来
返程司机必读:夜间行车安全指南
个人所得税怎么查工资明细 个人所得税app查询工资收入方法介绍
【健康科普】转移性肝癌再认识!