D语言是否有任何"专有"行李?

5 licensing d gnu

我在看D的许可,看到前端是开源的,但后端不是; 什么是后端?

为什么GNU会生成gdc?它与许可有关吗?

amo*_*mon 11

有不同的编译器有不同的目标.前端分析源代码,而后端执行实际编译.由于前端是开源的,它可以用于多个编译器.

DMD是D的闭源默认实现.它是功能完整的,但可能不是性能最佳的编译器.

GDC使用成熟的GNU编译器集合作为后端.相同的后端广泛用于C或C++编译,并且能够进行高级优化.

LDCLLVM平台为目标.这允许一些有趣的东西,如高速编译,可移植字节码和jitting.

由于前端在所有编译器之间共享,因此一个源文件将在每个编译器上以相同的方式解析.将其与C或C++方言进行比较.


Dej*_*kic 6

DMD只是D编译器的参考实现,就像Glassfish是企业Java应用服务器的参考实现一样.DMD的后端源于DigitalMars C/C++编译器.有意义,因为原始D创建者是DigitalMars C/C++编译器的作者,对吧?沃尔特无法在法律上完全开源后端,因为部分内容是在赛门铁克手中完成的......

其次,GNU 没有制作GDC - 它是由少数爱好者制作的,并且很快将很快合并到GCC树中.GDC就是GPL,就这么简单.

还提到了LDC--它使用LLVM作为后端.

真正重要的是D前端是开源的.事实上,DMD的后端不是无关紧要的,因为有太多的选择.无论如何,GCC和LLVM后端都优于DMD后端.

如果您从事编译器/解释器设计,我建议您查看SDC,MCI和DIL项目.我想你在http://wiki.dlang.org上有关于它们的更多信息.