我正在查看 D 的许可,发现前端是开源的,但后端不是;什么是后端?
GNU 为什么要制作 gdc?跟执照有关系吗?
DMD 只是 D 编译器的参考实现,就像 Glassfish 是企业 Java 应用服务器的参考实现一样。DMD 的后端源于 DigitalMars C/C++ 编译器。有道理,因为最初的 D 创建者是 DigitalMars C/C++ 编译器的作者,对吧?Walter 无法合法地完全开源后端,因为它的一部分是在赛门铁克手中制作的......
其次,GNU没有制作 GDC——它是由少数爱好者制作的,希望很快会被合并到 GCC 树中。GDC 就是 GPL,就这么简单。
还提到了 LDC - 它使用 LLVM 作为后端。
真正重要的是 D 前端是开源的。DMD 的后端不是无关紧要的,因为有很多选择。无论如何,GCC 和 LLVM 后端都优于 DMD 后端。
如果你喜欢编译器/解释器设计,我建议你看看 SDC、MCI 和 DIL 项目。我认为您在http://wiki.dlang.org上有更多关于它们的信息。