问题标签 [intermediate-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
476 浏览

c - 我的 Fortran 编译器的中间代码生成:DAG 或四倍

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

如果我使用 DAG 作为我的 IR,我如何使用 backpatching 方法进行语句?有了四倍体,这很容易。另一方面,DAG 更抽象。我将被迫将其转换为四倍。我知道。我的恐惧是回补。

0 投票
0 回答
110 浏览

c++ - 我可以以有效的方式从 C++ 调用 LLVM 后端的输出吗?

假设我有一些使用 LLVM 前端可用的编程语言编写的逻辑。我想在一些 C++ 应用程序中重用这个逻辑。我可以使用常见的 LLVM 后端生成某种库并从我的应用程序中调用它而不会显着降低性能吗?关于如何解决这个用例的任何提示?

0 投票
1 回答
664 浏览

compiler-construction - 编译器中间代码生成三地址代码fjump

FJUMP这种情况下是什么意思?

以下是寄存器机器的三地址码 (TAC) 中间表示:它包含一个名为 的函数foo,该函数接受一个整数参数n和一个整数a数组参数。用类似 Java 的伪代码写下高级语言对应项。

我认为三地址代码中的跳转指令类似于“if x goto L”?

0 投票
2 回答
188 浏览

scala - Scala编译器中间代码规范

Scala编译器生成的中间代码是否有任何正式的规范或详细描述(-Xprint-icode即将选项传递给scalac)?

谢谢。

0 投票
1 回答
3452 浏览

optimization - 在编译器的中间阶段进行代码优化的目的是什么?

对中间代码进行了一些代码优化,因为

  1. 它们增强了编译器对目标处理器的可移植性
  2. 中间代码的程序分析比机器代码更准确
  3. 来自数据流分析的信息不能用于优化
  4. 来自前端的信息不能用于优化

IMO:中间代码是与机器无关的代码。因此,中间代码可用于代码优化,因为可以将给定的源代码转换为目标机器代码。因此,选项 (1) ,但在某处解释选项 (2) 也是正确的。


代码优化的目的是什么,它在编译器的中间阶段有什么好处?

0 投票
1 回答
1020 浏览

c++ - C++ 帮助 - 在函数中使用 Ctime 为变量添加时间戳

全部!我正在尝试找到接受用户输入的最佳方式,为其添加时间戳,然后将其放入具有正确格式的文件中(每行一个时间戳/输入。时间戳的最佳方式是什么,然后放弃将其全部放入文件?谢谢!

以我的准系统代码为例:

0 投票
2 回答
134 浏览

interpretation - yosys rtlil 转储不完整

我试图弄明白 yosys 对我的 verilog 源所做的事情,所以我在我的脚本中插入了一些转储进程。我假设这些在手册中描述为 ILANG?在阅读 verilog 后立即查看转储,在我看来,重要的东西已经丢失了。例如,我有一组映射 ascii 字母代码的参数定义。这些在 ILANG 中列出,但没有任何价值。

是否有描述此输出的格式和解释的文档?Yosys 似乎丢弃了我的大部分代码,到目前为止,我还无法确定它丢弃的内容与我的源代码有何关联。

0 投票
1 回答
249 浏览

compiler-construction - 如何在三地址代码中用类似 C 的语言表示结构?

声明结构的 C 代码片段的三地址代码 IR 是什么?

0 投票
1 回答
113 浏览

c++ - 编译器如何识别其主机的硬件?哪个组件?

我的老师告诉我,中间代码对于所有系统都是通用的,但是编译器的一个组件然后根据代码运行的系统/环境使其不同。有人可以解释一下吗。

0 投票
0 回答
39 浏览

compiler-construction - 有人能解释一下斯坦福大学中间格式(SUIF)是如何工作的吗?

我最近在编译器设计类中遇到了一个术语 SUIF。我试图研究它,但无法从 SUIF 网站的文件中了解它的概述。我只能得到它基于面向对象的风格并遵循树形结构。有人可以帮助我理解它吗?即使是 SUIF 网站以外的链接也会对我有很大帮助。

谢谢。