生成了抽象语法树, 接着就来进行语义分析...语义分析的任务如下图:

一个比较简单的类型检查算法可以是这样的 :

 

加上id之后可以是这样的:

 

这里就引出了符号表的概念 :

同时符号表还应该满足程序中作用域的概念, 实现作用域的方法如下:

同时符号表还应该解决名字空间的问题, 可以看到图中多次出现list, 但实际编译器仍然应该能够正常运行 :

 

实现方案可以如下:

posted on 2016-05-28 12:38  内脏坏了  阅读(367)  评论(0编辑  收藏  举报