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

Joh*_*ren 4 c compiler-construction terminology

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

我们称编译器将一种语言编译成另一种语言是什么?

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

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

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

Gre*_*ill 6

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

随着今天流行的中间"字节码"语言,如JVM,CLR和LLVM,将语言翻译成C源代码现在已经不那么常见了.它直接生成字节码更强大,更烦人,而不是生成文本源代码.这些字节码(或LLVM中的"bitcode")语言比文本编程语言低,但仍然高于绑定到特定CPU或CPU系列的原始机器代码.

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