4

我正在寻找两件事。第一个是术语。

将一种语言编译成另一种语言的编译器叫什么?

其次,是否有任何编译器可以将通用语言 X编译成可移植的 C 代码?

我只是把这个想法扔在那里,但我在想,如果我们为我们自己选择的语言创建自己的前端会怎么样,但编译器不是一路走来,而是发出可移植的 C 代码。这样,我们可以添加新的语言特性,但仍然与现有的 C 代码非常兼容。

现在,这种方法可能存在巨大缺陷(除了您需要构建它),但人们会这样做吗?

4

1 回答 1

6

人们绝对会这样做。事实上,C++ 的原始实现是一个名为Cfront的程序,它将 C++ 翻译成 C 代码,然后用 C 编译器进行编译。

随着当今诸如 JVM、CLR 和 LLVM 等中间“字节码”语言的盛行,将语言转换为 C 源代码的情况现在变得不那么普遍了。直接生成字节码比生成文本源代码要强大得多,也不那么烦人。这些字节码(在 LLVM 的情况下为“位码”)语言的级别低于文本编程语言,但仍高于与特定 CPU 或 CPU 系列相关的原始机器代码。

我将这种程序称为“翻译器”,但这只是我。“编译器”也可以正常工作。

于 2012-06-14T08:16:53.427 回答