------------恢复内容开始------------
”揭开编译器前端的神秘面纱“——龙书附录读书总结
概述
历时10+h左右的时间,终于把课本附录的代码和解读都过了一遍。在这个过程,对编译器前端的认识也从最初的敬畏和稍微的恐惧,再随着逐渐掌握后,变为“不过如此”的感觉。个人觉得这部分掌握的难点应该在于,类的数量繁多,遇到“又忘记了”的属性和方法,要经常翻回去看。另外,对重要的类和方法做一定的自我总结,也是非常必要的。下面,就书上的一些重要的类,给出一些我个人的总结。
词法分析器
这部分的工作是分词,也就是把一串字符串识别为了一个个的词
- Tag:定义了词法单元常量,例如Tag.AND=256
- Token:就是一个int
- Word:把token的int和string绑起来了
- Real:Tag.REAL(就是个数字)+ float
- Lexer:维护Word哈希表(字符串到TAG数值的一个映射),readch和read用来辅助一个一个字符地读,scan函数用于匹配对应词法单元。
符号表和类型
------------恢复内容结束------------
来源:oschina
链接:https://my.oschina.net/u/4347613/blog/4313892