【发布时间】:2016-06-28 18:00:26
【问题描述】:
我正在阅读 Modern Compiler Implementation In ML,并尝试做编译器项目(老虎语言)。
在第5章,语义分析中,它使用函数数据结构来构建符号稳定。所以insert table key value会返回一个新表,而不是修改已有的表,函数返回时保留旧表。所以当类型检查完成后,符号表还是空的。
我的问题是,这是否意味着符号表纯粹用于类型检查?因为我读过这个 SO post,它说符号表也将用于代码一代(我还没有走那么远)。
如果语义分析后要使用符号表,我应该使用命令式数据结构吗?
任何具体的例子都将不胜感激。 :)
【问题讨论】:
-
在代码生成过程中当然会用到符号表:
a *= 5应该生成浮点乘法的整数吗? -
@MargaretBloom 可以肯定地说我应该对符号表使用命令式数据结构吗?哈希表而不是 bst