我已经为我自己的习惯语言做了一段时间的语义分析,但没有太多成功。但是如果我在谷歌上搜索任何这样的东西,那么绝大多数的链接都是使用大学课程材料,或者学术论文,或者只是完全不相关的过程,例如对英语文本的语义分析,而不是有用的知识。
我也在寻找传奇的Dragon Book,但我读到它在这方面真的没有太多内容(而且目前也超出了我在亚马逊上的价格范围)。
关于在哪里可以找到这一特定阶段的编译材料,有什么建议吗?
发布于 2013-02-08 01:18:45
语义分析是一个笼统的术语,涵盖了编译器中的许多简单步骤。
它通常由以下内容组成:
简化进一步的analysis
之前使用
目前的趋势是尝试将所有约束检查限制在类型系统中,而不是使用单独的passes。适用于许多不同语言的一种通用且功能强大的类型算法是Hindley-Milner。尽管它看起来很复杂,但实际上它比哑巴类型传播(如C或Java)更容易实现,如果您使用正确的方法的话。
执行复杂类型和任意语义检查的一个非常通用和简单的技巧是遍历AST,并发出一个简单的Prolog (在某些情况下甚至是Datalog)表达式序列,您可以将其提供给一个简单的Prolog解释器,并解决整个AST约束系统。
https://stackoverflow.com/questions/14756503
复制相似问题