2009-07-10 2 views
4

D 언어를 조사하면서 GCC 용 D 컴파일러 인 GDC를 발견했습니다.GDC 프론트 엔드가 중간 C/C++ 코드를 생성합니까?

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

문서는 거의 존재하지 않았다하지만 명령 줄 스위치의 대부분은 GCC 컴파일러와 동일이라고 말 했는가 : 여기에서는 MinGW의 버전을 다운로드. 그러나 GCC로 구축하지 않기 때문에 그다지 도움이되지 않습니다.

GDC는 "GCC 프런트 엔드"로 설명됩니다. 그래서 어느 시점에서는 GCC 컴파일러가 실제로 삼킬 수있는 중간 C++ 또는 C를 생성해야한다고 생각합니다. 나는 이것이 GCC가 Objective-C 프로그램을 컴파일하는 방법이라고 생각한다.

내가 알고 싶은 것은 이것이 GCC가 중간 C/C++ 코드를 GCC/MinGW에서 수동으로 검사 및 컴파일 할 수있는 파일로 내보내는 방법이 있습니까?

+0

사실, GDC는 다소 지원되지 않습니다. Windows에서 D에 대한 권장 컴파일러는 공식적인 DMD입니다. * nux에는 일부 맛을위한 DMD 버전이 있거나 LLVM 기반 LDC를 사용할 수 있습니다. http://www.dsource.org/projects/ldc – BCS

답변

8

프론트 엔드 GCC에 후 조립으로 직접 컴파일 된 언어 독립적 인 표현을 생성한다. 이것은 C, C++, Obj-C, D, Fortran, Java, Ada 및 기타 프런트 엔드의 경우입니다. 중간 C 또는 C++ 표현이 없으며 생성 할 수도 없습니다.

5

빠른 답변 : 아니오.

GCC에 대해 알고있는 바로는 프런트 엔드에서 백 엔드로 전달되는 언어 독립적 인 코드 표현에 대해 abstract syntax trees을 사용합니다. 이론적으로는 AST를 C/C++ 코드로 "디 컴파일"하는 것이 가능할 수도 있지만 GCC 스위트에서는 AFAIK가 이것을 구현하지 않습니다.

+0

OK,하지만 GCC입니다. 아마도 GDC는 GCC를 호출하는 별도의 프론트 엔드 일 뿐이며 출력을 인식 가능한 형태로 전달합니다. (나는 여기서 추측하고있다.) – Buggieboy

3

기본적으로 x86이라고하는 대신 대상 플랫폼으로 C/C++를 생성하는 gcc 백엔드가 필요합니다. 이것은 완전히 가능하지만 이것을 수행하는 구현을 알지 못합니다. 그런데, 만약 존재한다면, 출력물은 읽기가 쉽지 않을 수도 있습니다.

관련 문제