回答
有不同的目标编译器。前端分析源代码,而后端执行实际的编译。前端是开源的,它可以用于多个编译器。
DMD是D的闭源默认实现。它是功能完整的,但可能不是最好的编译器性能。
GDC使用成熟的GNU compiler collection作为后端。相同的后端广泛用于C或C++编译,并具有高级优化功能。
LDC针对LLVM平台。这允许一些有趣的东西,如高速编译,便携式字节码和jitting。
由于前端是在所有编译器之间共享的,所以一个源文件将在每个编译器上以相同的方式进行解析。将此与C或C++方言进行比较。
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的更多信息。
对于它的价值(几个月后),还有一个D for .NET编译器。 [链接](http://dnet.codeplex.com/) – nerdenator 2013-05-31 03:34:59
我从未听过有关D.NET多年的消息......很多人都说它是死的项目。可惜,这是一个有趣的项目,恕我直言。 – DejanLekic 2013-05-31 11:56:45
- 1. D编程语言是否有任何游戏/图形引擎?
- 2. 除D之外还有其他语言是否有静态if?
- 3. 是否有可能使任何语言可执行?
- 4. 是否有任何编程语言具有for-while循环?
- 5. 是否有任何功能语言没有垃圾回收
- 6. 是否有任何有关smalltalk语言的文档?
- 7. 是否有任何不是上下文无关语言的正规语言?
- 8. D编程语言是否有GNU Make-type程序?
- 9. C语言是否有运行时?
- 10. Java中是否有专用的语言类?
- 11. 如何为专有语言构建AST?
- 12. 是否有任何定义非标准控制流程语言的语言?
- 13. 是否有任何使用JavaCC的Eclipse语言IDE -plugins?
- 14. 是否有任何支持语言的文本编辑器/ IDE?
- 15. C语言是否有任何并发包?
- 16. 是否有任何编译为Bash的语言?
- 17. 是否有任何8051汇编语言C代码转换器
- 18. 是否有任何语言来指定自动代码修改?
- 19. 是否有任何好的库来解释Java语言?
- 20. 是否有任何语言允许突破多个循环?
- 21. 是否有任何编程语言从1开始计数?
- 22. 是否有可用于NSSpeechSynthesizer Cocoa类的任何语言绑定?
- 23. Sublime Text 2中是否有任何rpg语言插件?
- 24. 某处是否有任何C语言(甚至C++)OpenID库?
- 25. 是否有任何单一的范例语言
- 26. 是否有任何语言是英语检查格拉默检查
- 27. 是否有任何vim插件来选择任何语言的代码块?
- 28. UPDATE语句是否有任何限制?
- 29. 是否有任何基于原型的语言具有整个开发周期?
- 30. 所有语言是否支持任何常见的正则表达式语法?
我投票结束这个问题作为题外话题,因为它涉及许可或法律问题,而不是编程或软件开发。 [见这里](http://meta.stackoverflow.com/questions/274963/questions-about-licensing/274964#274964)和[here](http://meta.stackexchange.com/questions/139804/can-许可问题永远在主题上)以获取详细信息,以及[帮助]了解更多信息。 – JasonMArcher 2015-06-16 16:40:04