- 浏览: 327246 次
最新评论
-
riki:
D 语言学习交流群 264617728, 欢迎加入
D语言真相 The Case for D(1-5) -
exploder:
请教,如果使用D2进行wxD编译呢?
编译WxD0.16 -
blue_halo:
那如何解决呢????????
不能每次都用别的打开存成utf- ...
pyDev 中输入中文问题 -
funxue:
请教楼主
Error: undefined identifie ...
D语言版本的华容道 -
litsen:
在配置ms sqlserver的过程中遇到些问题,从Googl ...
安全第一,在sql server和client之间配置ssl连接
自从1999年12月,Walter设计开发D语言以来,D语言的编译器DMD因为不开源,成了业界的诟病。Walter曾经承诺,将开放源代码。
伟大的Walter Bright在今天2009年3月5日下午18点40分(中国时间) 释放出了D1和D2的前端和后端的源代码!!开源协议为GPL1.0或者Artistic license。后端协议看了看,有Digital Mars和SYMANTEC的版权。后端是单一用户协议,不允许再次发布。
Walter兑现了他的承诺!
感谢Walter所做的工作!
可以使用DMC(Digital Mars C++ compiler)进行编译。
分为Win32,Mac,Linux三个版本。
http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.041.zip
http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.026.zip
经过试验,我已经在WindowsXP Sp2下成功编译出DMD的Release版本!D前端后端约205个文件!用C语言编写。感叹Walter的独具匠心,巧夺天工。
D将越来越好!
评论
19 楼
check
2009-06-30
C的优势主要在于从模块化到ISA这一步,只要计算机还存在ISA为基础的架构设计标准C就永远不会淘汰。所以操作系统绝对不可能用C以外的语言来挑大梁,scheduler/syscall/ipc等东西只可能用C或者同样抽象程度的语言来实现。甚至于很多vm的gc,虽然C# gc是C++的,但是就我听到的,"it can almost compile as c"。总之从ISA开始的第一层抽象是C的舞台。
编译器总的来说是个算法多于效率的东西,用c写个ll(k)paser都是让人很郁闷的事情,更别说后面的一大堆IR,DFA,CodeGen,都需要大量合适的算法来表达。我觉得自举编译器确实有些烧包的成分,比如对于一个主要优势不在表示算法的语言来说,现在选择这么多不一定非要自举才算完成一个语言。但是确实也不是非要用C,我觉得一门新语言的设计用脚本语言之类应该就不错。
编译器总的来说是个算法多于效率的东西,用c写个ll(k)paser都是让人很郁闷的事情,更别说后面的一大堆IR,DFA,CodeGen,都需要大量合适的算法来表达。我觉得自举编译器确实有些烧包的成分,比如对于一个主要优势不在表示算法的语言来说,现在选择这么多不一定非要自举才算完成一个语言。但是确实也不是非要用C,我觉得一门新语言的设计用脚本语言之类应该就不错。
18 楼
night_stalker
2009-06-28
不是骚包 …… 编译器非常的复杂,全部用 C 写会很累很复杂。(Fortran 编译器是手写汇编的做出来的,弄了十几年)
譬如用 python 写了 python 编译器,然后解释执行编译自己(这步比较慢)。
编译后的编译器性能比解释执行好,用来编译其它 python 代码就很快了。
譬如用 python 写了 python 编译器,然后解释执行编译自己(这步比较慢)。
编译后的编译器性能比解释执行好,用来编译其它 python 代码就很快了。
17 楼
mikeandmore
2009-06-28
night_stalker 写道
今天看了龙书的自举(bootstrapping),觉得 D 语言编译器应该用 D 写才对(至少大部分)……
大部分成熟编译器都是自举的 —— 优化开发过程,并显示语言的优点和设计者对语言的信心。
Lisp 一开始只有一个耗费巨大工程手写汇编弄出来的阳春的编译器,后来大神发明了 eval 函数,于是出现了解释器,后来一群大神用 Lisp 写了编译器,然后用解释器运行编译器的代码,来编译 编译器的代码 —— Lisp 自举编译器就这么神奇的诞生了 ……
C 的跨平台移植,就是用 C 写编译器,然后交叉编译。
最初的 Pascal 编译器使用 Fortran 写的,后来改用 Pascal 写了。
我觉得 Ruby MRI 的 miniruby 也是一种 bootstrap 技术,Rubinius 就几乎全用 Ruby 写了 ……
大部分成熟编译器都是自举的 —— 优化开发过程,并显示语言的优点和设计者对语言的信心。
Lisp 一开始只有一个耗费巨大工程手写汇编弄出来的阳春的编译器,后来大神发明了 eval 函数,于是出现了解释器,后来一群大神用 Lisp 写了编译器,然后用解释器运行编译器的代码,来编译 编译器的代码 —— Lisp 自举编译器就这么神奇的诞生了 ……
C 的跨平台移植,就是用 C 写编译器,然后交叉编译。
最初的 Pascal 编译器使用 Fortran 写的,后来改用 Pascal 写了。
我觉得 Ruby MRI 的 miniruby 也是一种 bootstrap 技术,Rubinius 就几乎全用 Ruby 写了 ……
个人觉得这是一种骚包的做法。。
pypy就属于这种小骚包么
16 楼
night_stalker
2009-06-28
今天看了龙书的自举(bootstrapping),觉得 D 语言编译器应该用 D 写才对(至少大部分)……
大部分成熟编译器都是自举的 —— 优化开发过程,并显示语言的优点和设计者对语言的信心。
Lisp 一开始只有一个耗费巨大工程手写汇编弄出来的阳春的编译器,后来大神发明了 eval 函数,于是出现了解释器,后来一群大神用 Lisp 写了编译器,然后用解释器运行编译器的代码,来编译 编译器的代码 —— Lisp 自举编译器就这么神奇的诞生了 ……
C 的跨平台移植,就是用 C 写编译器,然后交叉编译。
最初的 Pascal 编译器使用 Fortran 写的,后来改用 Pascal 写了。
我觉得 Ruby MRI 的 miniruby 也是一种 bootstrap 技术,Rubinius 就几乎全用 Ruby 写了 ……
大部分成熟编译器都是自举的 —— 优化开发过程,并显示语言的优点和设计者对语言的信心。
Lisp 一开始只有一个耗费巨大工程手写汇编弄出来的阳春的编译器,后来大神发明了 eval 函数,于是出现了解释器,后来一群大神用 Lisp 写了编译器,然后用解释器运行编译器的代码,来编译 编译器的代码 —— Lisp 自举编译器就这么神奇的诞生了 ……
C 的跨平台移植,就是用 C 写编译器,然后交叉编译。
最初的 Pascal 编译器使用 Fortran 写的,后来改用 Pascal 写了。
我觉得 Ruby MRI 的 miniruby 也是一种 bootstrap 技术,Rubinius 就几乎全用 Ruby 写了 ……
15 楼
ideage
2009-03-25
enderhml 写道
怎么又个 idgen not found 的错误啊 编译不果去啊
1.屏蔽path中其他c++编译器.
2.设置好make文件中的路径.
已经给你回短信了,发给你我修改过的make文件.
14 楼
enderhml
2009-03-24
怎么又个
idgen not found
的错误啊
编译不果去啊
idgen not found
的错误啊
编译不果去啊
13 楼
healer_kx
2009-03-19
C++的编译器也不是C++写的啊。追求这种东西,个人觉得没有太大的意义。
12 楼
zuland
2009-03-13
night_stalker 写道
突然想到:为什么不用D来写DMD呢?
C是移植性最好的语言, D现在有三个平台的实现, 用C来做是很自然的.
实际上如果能够用OCAML/Haskell等来写的话, 代码量会少得多. 毕竟用C写程序, 需要处理的琐碎事情太多了.
11 楼
ideage
2009-03-08
简单说下:
1.先下载 http://ftp.digitalmars.com/dmd.1.041.zip ,DMC
2.解压DMC,设置路径,然后到src目录,运行 make -fwin32.mak即可.
3.win32.mak可能要设置下:就是把路径设置正确,设置为你DMC中的路径
1.先下载 http://ftp.digitalmars.com/dmd.1.041.zip ,DMC
2.解压DMC,设置路径,然后到src目录,运行 make -fwin32.mak即可.
3.win32.mak可能要设置下:就是把路径设置正确,设置为你DMC中的路径
10 楼
yntcsb
2009-03-07
引用
经过试验,我已经在WindowsXP Sp2下成功编译出DMD的Release版本!
能把试验过程给出来吗?我也想试试。
9 楼
RednaxelaFX
2009-03-06
night_stalker 写道
突然想到:为什么不用D来写DMD呢?
这应该是潮流和趋势吧。会有的,虽然现在Google Code上的版本还不够成熟。
不太清楚Walter的考虑是怎样的,不过大致可以猜测有两点:
1、在编写D编译器时尚未有可用的D编译器,而写好这个编译器时代码量已经很大,没必要就不想重新写;
2、D的语言特性没有完全冻结,用一个快速变化中的语言来写代码的维护成本比较高。
要我说的话第一点的因素或许大些?第二点毕竟有D1是相对稳定的。
想起C#的编译器。微软当初实现C#编译器的时候,C#还不存在,自然只能用已有的语言来写;于是当时微软是用C++来写C#编译器的。编译器代码成熟之后,代码量已经非常大了,性能也还可以;加上当时没有立即的需求要用C#来重写编译器,所以一直到Visual Studio 2008/.NET Framework 3.5 SP1的C#编译器都是从开始的那个C++版本进化而来的。
而Mono计划在启动阶段的时候已经有C#编译器了,微软那个。Miguel为了学习C#而用C#写了Mono的第一个C#编译器。后来经过大量的修改,多年的进化,现在性能也还不错,能支持C# 3.0的新语法。
不仅如此,Mono在2.2正式将它的C#编译器开放为一个服务,可以在自己的程序里调用它来解析和编译C#代码。
微软的C# 5.0路线图的其中一点正好也是将C#编译器用C#重新实现一遍,并将编译器作为服务开放出来。这点反而让Mono走在了前面,着实有趣。在Visual Studio 2010 CTP里,.NET 4.0的System.Core.dll里已经有一个半成品的C#编译器了;它目前是用于支持C# 4.0的dynamic特性的。有兴趣的话也可以去看看。
8 楼
ideage
2009-03-06
night_stalker 写道
突然想到:为什么不用D来写DMD呢?
呵呵,你太有才了,还真有这样的项目:Dil,在Google Code呢.兼容D1,D2.
7 楼
smallping79
2009-03-06
D语言的时代终于到来了
6 楼
night_stalker
2009-03-06
突然想到:为什么不用D来写DMD呢?
5 楼
sw2wolf
2009-03-06
很好, 历史的必然, 个人力量总是有限的!
4 楼
ww21xx
2009-03-06
这个要顶,,,,,强顶! DMD终于开源了, 大伙们都等的心痛啊! 以后D语言会越来越强! 加油!
3 楼
ideage
2009-03-06
mzfhhhh 写道
小弟不懂,预测下D开源后的,发展趋势是怎么样呢?
简述下:
1.将有更多的大牛帮助开发和测试D。
2.你自己也可以编译自己的DMD。
3.D更符合当前流行趋势,符合GPL开源精神,得到开源社区支持。
4.看到源代码后,你发现没有任何后门,木马,让你用的更加放心。
5.D社区将迎来春天!!!
2 楼
mzfhhhh
2009-03-06
小弟不懂,预测下D开源后的,发展趋势是怎么样呢?
1 楼
ideage
2009-03-05
经过试验,我已经在WindowsXP Sp2下成功编译出DMD. Release版本!
发表评论
-
最近抽空翻译了D语言实用入门教程
2018-04-20 10:42 896最近抽空翻译了D语言实用入门教程 地址在Github,供初 ... -
编译WxD0.16
2011-09-27 18:09 1724wx我在Python环境下用了 ... -
简单看了下DGui
2011-09-26 10:39 2279很久没有写代码了。。。。 怀念往日不如今天行动。生疏了 ... -
支持中文录入的harmonia
2010-08-16 22:40 1045harmonia界面很方便,发现不能录入中文.Patch一下. ... -
控制台得到密码不回显
2009-09-18 22:37 1269看到坛子有人问“在D或C下如何实现输入单个字符不回显?可能的应 ... -
D资源文件调用
2009-08-09 01:36 1057终于成功了。 资源文件太可爱,竟然可以如此。按名称进行 ... -
The Case for D中英文版PDF下载
2009-06-19 10:27 1409The Case for D 在网站上浏览不方便的,有了PD ... -
D语言真相 The Case for D(1-5)
2009-06-17 09:52 4913D语言真相 Andrei Alexandre ... -
The Case for D
2009-06-16 22:50 2312The Case for D Andrei Alexan ... -
Python嵌入D
2009-06-12 11:37 1984所有的嵌入都研究了一个遍。发现嵌入Python挺好,试试。 ... -
实用的DFL注册表
2009-05-27 09:09 1027应用中要用到注册表.DFL里面有. 参照了文档,写了一 ... -
DFL 2.027,1.041,2,3编译
2009-04-07 17:59 1599注:DFL已经更新,http://www.dprogrammi ... -
D2.0的字符串
2009-04-07 08:28 1388D2.0的字符串增加了常量,不变量和变量.在很大程度上增加了语 ... -
D语言现状From2007
2009-03-02 15:32 1072I'm sure this was brought up in ... -
D语言GUI库简单比较
2009-02-20 15:25 3250通过对一些D语言可以使用的GUI进行比较,对初学者有个借 ... -
D语言脚本引擎简单比较
2009-02-19 14:38 1831经过长期的测试,使用,扩展代码编写,比较了D中可以使用的几种脚 ... -
D语言编译器开始支持Mac OSX
2009-02-15 18:25 1170D语言编译器开始支持Mac OSX。 D语言历经10年的发 ... -
触发DFL中的ComboBox控件的键盘事件
2009-02-06 12:04 1203class ComboxKeyDownFilter:IMess ... -
DFL分析(四)伟大的结构
2008-12-25 00:08 1429每个程序都有很多的代码编织而成.为了获得最大的兼容性,你要从容 ... -
文件的格式和BOM
2008-12-22 19:45 2163最近,用D写了些文件操作的代码.发现,只能用UltraE ...
相关推荐
DMD,全称为Digital Mars D Compiler,是D语言的主要开源编译器之一,由Walter Bright创建并维护。D语言是一种静态类型、通用、面向对象的编程语言,旨在提高编程效率,同时保持运行时性能。DMD的版本dmd.2.026代表...
Dmd是一个开源的、跨平台的编译器,它可以将D语言的源代码转换为机器码,从而在各种操作系统上运行。它支持多种平台,包括Windows、Linux、Mac OS等,这使得D语言的应用范围非常广泛。 在源文件部分,你可能会找到D...
1. **DMD (D Mange Compiler)**:这是官方的D语言编译器,用于将D源代码转换为可执行程序。DMD具有快速编译速度和对最新D语言特性的支持。 2. **GDC**:GCC的D语言前端,允许D语言利用GCC的优化和平台支持。 3. **...
它是仅与Windows的D编译器DMD版本1一起使用的一组库和工具。 它包含新的运行时,允许同时使用Tango和Phobos库。 它主要与另一个项目(Dinrus,http://sourceforge.net/projects/dinrus)一起使用,作为生成新模块和...
tools, D 编程语言编译器的辅助工具 工具 这个存储库托管了各种在各种构建任务中使用DMD重新分发或者内部使用的工具。程序范围说明catdoc生成连接Ddoc文件。已经更改内部更改日志生成器。chmodzip生成ZIP
在本篇文章中,我们将探讨DFL的最新版本——DFL for DMD2.031,以及它如何与DMD(D语言的官方编译器)的这一特定版本相结合,提升开发体验。 首先,我们需要了解DMD2.031。DMD是D语言的主要编译器,由Walter Bright...
4. **D语言的社区和工具**:介绍DUB项目管理工具、dlang.org网站资源、社区论坛、开源项目等。 5. **实践案例**:通过实际项目展示D语言的应用,如游戏引擎开发、Web服务器构建等。 这套手册对于初学者来说,能够...
LDC项目提供了具有现代优化和代码生成功能的便携式D编程语言编译器。 编译器使用官方的DMD前端来支持D2的最新版本,并依赖LLVM Core库进行代码生成。 LDC是完全开源的; 未从其他项目中获取/改编的部分源代码已...
DMD,全称为Digital Mars D Compiler,是一款开源的D编程语言编译器,由Walter Bright创建并维护。本教程将详细介绍如何使用适用于各种系统的DMD安装程序,以及与之相关的工具和技术,如shell脚本、Bash、Fish shell...
3. **构建工具集成**:IDE会内置D语言的编译器,如GDC、LDC或DMD,自动执行编译和链接过程,提供错误和警告的实时反馈。 4. **调试工具**:集成的调试器允许开发者设置断点、单步执行、检查变量值等,以调试代码。 5...
总结,DlangIDE是一个利用DlangUI库构建的跨平台D语言IDE,它集成了调试器、编译器支持(如DMD和LDC)、代码补全(DCD)以及包管理(Dub)。该IDE旨在提供一个全面的开发环境,适用于Windows、Linux和macOS用户。源...
并且由于该语言是基于D编程语言构建的,因此您需要最新版本的DMD编译器来编译Vlang源文件。 ESDL与2.081或更高版本的DMD编译器一起使用。 可以从页面下载DMD编译器。 目前,Vlang仅在64位Linux计算机上进行了测试。
DMD通常指的是Digital Mars D编译器,这表明项目是用D语言编写的。 标签“源码 工具”暗示了DFL Printting!可能是一个开源项目,包含源代码,并且是一个开发者工具,可能用于帮助程序员进行打印功能的集成或者调试...
您可以从d.acomirei.ru的底部获取D编译器(带有dmd前缀),但这需要一些调整才能起作用。 这些编译器被配置为使用VC ++的本地副本,因此我认为您可以将sc.ini(设置文件)替换为dlang.org官方dmd发行版中的一个,...
OpenVR-D是一个项目,它是Valve的开源C++ OpenVR库的D语言绑定。这个库主要目的是为了让D语言开发者能够方便地接入和利用OpenVR API,从而开发虚拟现实(VR)应用。OpenVR是一个跨平台的SDK,为各种VR硬件设备提供了...
支持资源编译器 自定义构建命令 自定义构建步骤前/后 自动依赖生成 依赖项目之间的自动链接 新项目模板 与VC项目集成 通过构建定制实现无缝集成 可访问 DMD 和 LDC 命令行选项 并行编译 调试器 提供 D 表达式评估的 ...
- 解压"DMD-P10-display-master.zip",将库文件复制到Arduino IDE的库目录中,以便在编译器中使用。 - 在Arduino程序中,需要包含库头文件,并实例化相关的对象来访问和控制LED面板。 - 通过库提供的函数,可以...
4. **构建和调试**: 利用Pebble SDK的构建工具链和D语言的编译器,编译并打包应用。可以使用模拟器或实际设备进行测试和调试。 5. **发布应用**: 一旦应用完成并通过所有测试,你可以将其上传到Pebble应用商店,供...