Tri*_*ock 8 c c++ compiler-construction
可能是一个非常模糊和广泛的问题,但是所有C++编译器在将代码编译成机器代码之前是否先将代码编译成C?
Mar*_*ork 14
由于C编译器几乎无处不在并且几乎在每个平台上都可用,因此很多(编译的)语言在开发过程中经历了这个阶段以引导该过程.
在语言开发的早期阶段,看看语言是否可行,最简单的方法就是构建一个将语言转换为C然后让本机C编译器构建实际二进制文件的编译器.
这样做的问题在于语言特定的构造会丢失,因此可能会错过潜在的优化机会,因此第二阶段的大多数语言都会获得自己的专用编译器front end,这些编译器可以理解语言特定的构造,因此可以提供基于这些构造的优化策略.
二十多年前,C++经历了第一阶段和第二阶段.因此很容易找到专用于C++的编译器的"前端",并生成一个直接传递给支持的中间格式.但是在编译之前,您仍然可以找到转换为C(作为中间格式)的C++版本.
不.例如GCC来自C++ - >汇编程序.你可以通过使用-Sg ++选项看到这一点.
实际上,现在我考虑一下,我认为任何现代编译器都不会在ASM之前转到C语言.
| 归档时间: |
|
| 查看次数: |
3605 次 |
| 最近记录: |