代码之家  ›  专栏  ›  技术社区  ›  Buggieboy

让GDC前端发射中间C/C++代码?

  •  4
  • Buggieboy  · 技术社区  · 17 年前

    在研究D语言时,我遇到了gdc,gcc的D编译器。我从这里下载了Mingw的版本:

    http://sourceforge.net/projects/dgcc/files/

    文档几乎不存在,但它确实表示大多数命令行开关与GCC编译器相同。不过,这对我没什么帮助,因为我通常不使用gcc构建。

    GDC被描述为“GCC前端”。这使我认为,在某个时候,它必须生成GCC编译器实际上可以吞没的中间C++或C。我相信GCC就是这样编译Objective-C程序的。

    我想知道的是:有没有办法让GDC发布中间C/C++代码作为文件,然后我可以用GCC/MIWW手工检查和编译?

    3 回复  |  直到 17 年前
        1
  •  8
  •   greyfade    17 年前

    不。

    gcc的前端生成一个独立于语言的表示,然后直接编译到汇编中。这是C、C++、Obj-C、D、FORTRAN、Java、艾达和其他前端的情况。没有中间C或C++表示,也不能生成一个。

        2
  •  5
  •   Vladimir Panteleev    17 年前

    快速回答:不。

    根据我对GCC的了解,它使用 abstract syntax trees 用于从前端传递到后端的独立于语言的代码表示。从理论上讲,可以将AST“反编译”为C/C++代码,但是GCC套件没有实现这一点。

        3
  •  3
  •   Mehrdad Afshari    17 年前

    基本上,你需要 gcc 后端生成C/C++作为其目标平台,而不是说x86。这是完全可能的,但我不知道有什么实现可以做到这一点。顺便说一下,如果存在一个,输出可能不太可读。