gpt4 book ai didi

c - 我的 Fortran 编译器的中间代码生成 : DAG or quadruples

转载 作者:行者123 更新时间:2023-11-30 17:37:26 25 4
gpt4 key购买 nike

我正在使用 Flex 和 Bison 编写一个迷你 Fortran 编译器。到目前为止我已经完成了词法和语法分析。我正在进行类型检查的语义分析,现在必须选择 IR。我的目标机器是MIPS。所以我想要基于 MIPS IAS 的最终代码生成。所以我认为好的 IR 是四倍。但我想介绍一些优化。因此,我构建了一个 DAG 结构(使用哈希表)。 IR 有 2 条路径:四元组或 DAG,然后是四元组。

如果我使用 DAG 作为我的 IR,我如何使用语句的 backpatching 方法?有了四联就很容易了。另一方面,DAG 更加抽象。我将被迫将其转换为四倍。我知道。我担心的是回溯。

最佳答案

我相信当您应该专注于高层设计时,您正在担心底层细节。此外,当前的编译器不使用四元组,而是使用SSA(静态单赋值)。对于最终的代码生成,也许可以看看 LCC 编译器,它们使用一种简单的方法通过树匹配来发出局部最优代码。

一种作弊方法是只生成一种高级语言(例如 C),并将繁重的工作留给其编译器(并且您可以免费获得可移植性;-)。

我不知道 Usenet 组 comp.compilers 是否以某种形式存在,但它是 FAQ将是我的第一站。不过,可能已经过时了。

关于c - 我的 Fortran 编译器的中间代码生成 : DAG or quadruples,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22392764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com