math - 编译器如何使用晶格

标签 math compiler-construction

在我的编译器构建研究生类,我们介绍了lattice的概念。已经针对晶格进行了三场讲座,到目前为止,这似乎是一个有趣的切线,但难题是它并没有真正帮助解释编译器如何使用晶格来解决具体问题。

我们已经介绍了解析和类型检查。我们将开始活跃度分析和注册分配。

注意,我不是在寻找有关构建编译器的资源。以下链接列表涵盖了相当不错的内容。我正在寻找的是关于编译器与晶格之间的关系的解释,这是大多数示例中的加分项。

Learning Resources on Parsers, Interpreters, and Compilers
How much of the compiler should we know?
Learning to write a compiler

最佳答案

在对正在编译的程序进行静态分析时,格子是一种非常有用的表示状态的结构-例如。用于删除通过 liveness 分析,可用/非常繁忙的表达式,到达定义,符号分析和恒定传播检测到的无效代码。

如果需要详细信息,这是一本很好的读物:Lecture Notes on Static Analysis

关于math - 编译器如何使用晶格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625261/

相关文章:

c# - 使用 Mono Compiler/创建一个新的同时仍然输出 Windows EXE?

javascript - 在矩形的边缘上获取两个点

math - float 学有问题吗?

algorithm - 给定exp()函数,如何实现ln()函数呢?

math - 采访: random3 function implementation using random2

C# 编译器数字文字

c++ - 返回 int 但未显式返回任何内容的函数的返回值是多少。例如输出