将“通用组成语言X”编译成便携式C的编译器

时间:2012-06-14 08:14:25

标签: c compiler-construction terminology

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

我们将编译一种语言的编译器称为另一种语言?

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

我只是把想法扔到那里,但我在想,如果我们为我们自己选择的语言创建了我们自己的前端,但是编译器发出了便携式C,而不是全力以赴。码。这样,我们可以添加新的语言功能,但仍然与现有的C代码非常兼容。

现在也许这种方法存在一个巨大的缺陷(除了你需要建立它),但人们会这样做吗?

1 个答案:

答案 0 :(得分:6)

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

由于今天流行的是中间“字节码”语言,如JVM,CLR和LLVM,现在将语言翻译成C源代码的情况要少得多。它直接生成字节码更强大,更烦人,而不是生成文本源代码。这些字节码(或LLVM中的“bitcode”)语言比文本编程语言低,但仍然高于与特定CPU或CPU系列相关的原始机器代码。

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