Заставить интерфейс GDC испускать промежуточный код C / C ++? - PullRequest
4 голосов
/ 10 июля 2009

При изучении языка D я наткнулся на GDC, D-компилятор для GCC. Я скачал версию для MinGW отсюда:

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

Документация почти не существовала, но в ней говорилось, что большинство параметров командной строки были такими же, как и для компилятора GCC. Однако это мне мало помогает, так как я обычно не строю с GCC.

GDC описывается как «внешний интерфейс GCC». Это заставляет меня думать, что в какой-то момент он должен генерировать промежуточный C ++ или C, который компилятор GCC может фактически проглотить. Я считаю, что именно так GCC компилирует программы Objective-C.

Что я хочу знать, так это: есть ли способ заставить GDC испускать промежуточный код C / C ++ в виде файлов, которые затем я могу проверять и компилировать вручную с помощью GCC / MinGW?

Ответы [ 3 ]

9 голосов
/ 11 июля 2009

номер

Интерфейсы GCC генерируют независимое от языка представление, которое затем компилируется непосредственно в сборку. Это относится к C, C ++, Obj-C, D, Fortran, Java, Ada и другим интерфейсам. Промежуточное представление C или C ++ отсутствует и не может быть сгенерировано.

5 голосов
/ 10 июля 2009

Быстрый ответ: нет.

Из того, что я знаю о GCC, он использует деревья абстрактного синтаксиса для независимого от языка представления кода, который передается от внешнего интерфейса к внутреннему. Теоретически может быть возможным «декомпилировать» этот код AST в C / C ++, но AFAIK пакет GCC не реализует это.

3 голосов
/ 11 июля 2009

По сути, вам нужен сервер gcc, который генерирует C / C ++ в качестве целевой платформы, а не, скажем, x86. Это вполне возможно, но я не знаю о реализации, которая делает это. Кстати, если таковой существует, вывод может быть не очень читабельным.

...