2013-03-03 1 views
5

나는 D의 라이센스를보고 있으며 프론트 엔드가 오픈 소스이지만 백엔드가 아닌 것을 확인합니다. 백엔드는 무엇입니까?D 언어에는 "독점"수하물이 있습니까?

왜 GNU가 gdc를 만들었습니까? 라이센스와 관련이 있습니까?

+3

이 질문은 프로그래밍이나 소프트웨어 개발이 아닌 라이센스 또는 법적 문제에 관한 주제이기 때문에이 질문을 닫으려고합니다. [여기를 참조하십시오 (http://meta.stackoverflow.com/questions/274963/questions-about-licensing/274964#274964) 및 [여기] (http://meta.stackexchange.com/questions/139804/can- 주제에 관한 라이센싱 질문), 자세한 내용은 [도움말]을 참조하십시오. – JasonMArcher

답변

11

목표가 다른 여러 컴파일러가 있습니다. 프론트 엔드는 소스 코드를 분석하지만 백엔드는 실제 컴파일을 수행합니다. 프런트 엔드가 오픈 소스이기 때문에 여러 컴파일러에 사용할 수 있습니다.

DMD은 폐쇄 형 소스 기본 구현입니다.이 기능은 완벽하지만 성능면에서는 최고의 컴파일러가 아닐 수 있습니다.

GDC은 성숙한 GNU compiler collection을 백엔드로 사용합니다. 동일한 백엔드가 C 또는 C++ 컴파일 및 고급 최적화가 가능하도록 널리 사용됩니다.

LDCLLVM 플랫폼을 대상으로합니다. 이것은 고속 컴파일, 휴대용 바이트 코드 및 jitting과 같은 흥미로운 것을 허용합니다.

프론트 엔드가 모든 컴파일러에서 공유되므로 하나의 소스 파일이 모든 컴파일러에서 같은 방식으로 구문 분석됩니다. 이것을 C 또는 C++ 방언과 비교하십시오.

6

DMD는 Glassfish가 엔터프라이즈 Java 응용 프로그램 서버의 참조 구현과 마찬가지로 D 컴파일러의 참조 구현입니다. DMD의 백엔드는 DigitalMars C/C++ 컴파일러에 뿌리를두고 있습니다. 원래 D 작성자가 DigitalMars C/C++ 컴파일러 작성자이기 때문에 의미가 있습니다. 맞습니까? 월터 GDC하지하지 않았다 법적으로 완전히 오픈 소스는 시만텍의 손에있는 동안 그것의 일부가되었습니다 때문에 백엔드 ...

둘째, GNU 을 수 있습니다 - 그것은 소수의 매니아에 의해 만들어진, 희망했다 곧 GCC 트리에 병합됩니다. GDC는 GPL이며 간단합니다.

LDC도 언급되었습니다. LLVM을 백엔드로 사용합니다.

정말 중요한 점은 D 프론트 엔드가 오픈 소스라는 것입니다. DMD의 백엔드가 아니라는 사실은 너무 많은 대안이 있기 때문에 무의미합니다. GCC 및 LLVM 백엔드 모두 DMD 백엔드보다 우수합니다.

컴파일러/인터프리터 디자인을하는 경우 SDC, MCI 및 DIL 프로젝트를 살펴 보는 것이 좋습니다. 나는 그들에 대한 더 많은 정보가 http://wiki.dlang.org에 있다고 생각합니다.

+0

몇 달 후 가치가있는 것을 위해 D for .NET 컴파일러도 있습니다. [link] (http://dnet.codeplex.com/) – nerdenator

+0

수년 동안 D.NET에 관한 소식을 듣지 못했습니다 ... 많은 사람들이 그것을 죽은 프로젝트로 이야기합니다. 불쌍한, 그것은 흥미있는 프로젝트 (IMHO)이었다. – DejanLekic