问题标签 [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.
c - 我的 Fortran 编译器的中间代码生成:DAG 或四倍
我正在使用 Flex 和 Bison 编写一个迷你 Fortran 编译器。至此,我已经完成了词法和句法分析。我在类型检查的语义分析中,我现在必须选择一个 IR。我的目标机器是 MIPS。所以我想要基于 MIPS IAS 的最终代码生成。所以我相信一个好的IR是四倍。但我想介绍一些优化。出于这个原因,我构建了一个 DAG 结构(使用哈希表)。IR 有 2 条路径:四倍或 DAG,然后是四倍。
如果我使用 DAG 作为我的 IR,我如何使用 backpatching 方法进行语句?有了四倍体,这很容易。另一方面,DAG 更抽象。我将被迫将其转换为四倍。我知道。我的恐惧是回补。
c++ - 我可以以有效的方式从 C++ 调用 LLVM 后端的输出吗?
假设我有一些使用 LLVM 前端可用的编程语言编写的逻辑。我想在一些 C++ 应用程序中重用这个逻辑。我可以使用常见的 LLVM 后端生成某种库并从我的应用程序中调用它而不会显着降低性能吗?关于如何解决这个用例的任何提示?
compiler-construction - 编译器中间代码生成三地址代码fjump
FJUMP在这种情况下是什么意思?
以下是寄存器机器的三地址码 (TAC) 中间表示:它包含一个名为 的函数
foo
,该函数接受一个整数参数n
和一个整数a
数组参数。用类似 Java 的伪代码写下高级语言对应项。
我认为三地址代码中的跳转指令类似于“if x goto L”?
scala - Scala编译器中间代码规范
Scala编译器生成的中间代码是否有任何正式的规范或详细描述(-Xprint-icode
即将选项传递给scalac)?
谢谢。
optimization - 在编译器的中间阶段进行代码优化的目的是什么?
对中间代码进行了一些代码优化,因为
- 它们增强了编译器对目标处理器的可移植性
- 中间代码的程序分析比机器代码更准确
- 来自数据流分析的信息不能用于优化
- 来自前端的信息不能用于优化
IMO:中间代码是与机器无关的代码。因此,中间代码可用于代码优化,因为可以将给定的源代码转换为目标机器代码。因此,选项 (1) ,但在某处解释选项 (2) 也是正确的。
代码优化的目的是什么,它在编译器的中间阶段有什么好处?
c++ - C++ 帮助 - 在函数中使用 Ctime 为变量添加时间戳
全部!我正在尝试找到接受用户输入的最佳方式,为其添加时间戳,然后将其放入具有正确格式的文件中(每行一个时间戳/输入。时间戳的最佳方式是什么,然后放弃将其全部放入文件?谢谢!
以我的准系统代码为例:
interpretation - yosys rtlil 转储不完整
我试图弄明白 yosys 对我的 verilog 源所做的事情,所以我在我的脚本中插入了一些转储进程。我假设这些在手册中描述为 ILANG?在阅读 verilog 后立即查看转储,在我看来,重要的东西已经丢失了。例如,我有一组映射 ascii 字母代码的参数定义。这些在 ILANG 中列出,但没有任何价值。
是否有描述此输出的格式和解释的文档?Yosys 似乎丢弃了我的大部分代码,到目前为止,我还无法确定它丢弃的内容与我的源代码有何关联。
compiler-construction - 如何在三地址代码中用类似 C 的语言表示结构?
声明结构的 C 代码片段的三地址代码 IR 是什么?
c++ - 编译器如何识别其主机的硬件?哪个组件?
我的老师告诉我,中间代码对于所有系统都是通用的,但是编译器的一个组件然后根据代码运行的系统/环境使其不同。有人可以解释一下吗。
compiler-construction - 有人能解释一下斯坦福大学中间格式(SUIF)是如何工作的吗?
我最近在编译器设计类中遇到了一个术语 SUIF。我试图研究它,但无法从 SUIF 网站的文件中了解它的概述。我只能得到它基于面向对象的风格并遵循树形结构。有人可以帮助我理解它吗?即使是 SUIF 网站以外的链接也会对我有很大帮助。
谢谢。