D语言学习笔记(1)——编译和运行环境以及“Hello World”
来源:互联网 发布:rhino执行js方法 编辑:程序博客网 时间:2024/05/22 10:23
最近在CSDN上看到有提到一个D语言,仔细看了一下网上的资料之后,发现这个确实是个好东西! 这个语言集合了C、java和一些脚本语言如ruby的很多优点,同时抛弃了很多C++的缺点。感觉最直接的,一个是彻底抛弃C/C++的include头文件,而采用了类似java的包管理机制,另外一个是彻底抛弃了C/C++的宏替换和源代码预处理过程,使得编译的速度大大提高而且减少了由于不正确使用宏替换带来的隐患。这两个地方是我用c++以来感觉最不爽的地方了。此外,D语言还带来了很多新的特性,比如说GC(垃圾收集机制)、mixin等等现代高级语言所拥有的功能。而且其提供的基本库phobos提供了stl所有的功能而且还加了很多像ruby这样的脚本语言才提供的函数,使得编程变得更加的容易,代码量大大减少。更让人感到兴奋的是,D语言支持同步互斥变量和函数的声明,使得编写多线程程序的时候不再很麻烦的为每一个同步变量加锁和解锁了。所以,我觉得D语言是一个很有前途的语言。
废话就说到这,现在开始说正事。
编译和运行环境(linux下):
在http://www.digitalmars.com/d这个网站下载D语言的编译包dmd.zip。解压出来之后会发现有dmd/bin这个目录,把环境变量PATH加上这个目录,就可以随时随地编译D语言的程序了。好像挺简单的。
其实深究起来,无非是跟一个配置文件dmd.conf有关。这个文件在dmd/bin目录下,和编译程序dmd在同一个目录。缺省情况下,dmd.conf是这样的:
[Environment]
DFLAGS=-I%@P%/../src/phobos -L-L%@P%/../lib
跟gcc的参数很像,-I后面接着的是源代码包的路径,-L后面接的是库文件的路径。而%@P%指代的是编译程序dmd所在的路径。
第一个程序,hello.d:
写好程序之后,运行dmd hello.d。之后就生成了可执行文件hello。运行hello,可以看见输出了“Hello World!”这个字符串,并换行了。
对比一下我们用C写的相同程序,发现有个区别,就是main函数的参数改变了。变成了char[][] args。这是一个更好用的结构。运行的程序坐在目录和程序名存放在args[0],第一个命令行参数放在args[1],第二个命令行参数放在args[2],以此类推……
废话就说到这,现在开始说正事。
编译和运行环境(linux下):
在http://www.digitalmars.com/d这个网站下载D语言的编译包dmd.zip。解压出来之后会发现有dmd/bin这个目录,把环境变量PATH加上这个目录,就可以随时随地编译D语言的程序了。好像挺简单的。
其实深究起来,无非是跟一个配置文件dmd.conf有关。这个文件在dmd/bin目录下,和编译程序dmd在同一个目录。缺省情况下,dmd.conf是这样的:
[Environment]
DFLAGS=-I%@P%/../src/phobos -L-L%@P%/../lib
跟gcc的参数很像,-I后面接着的是源代码包的路径,-L后面接的是库文件的路径。而%@P%指代的是编译程序dmd所在的路径。
第一个程序,hello.d:
import std.stdio;
int main(char[][] args)
{
writefln("Hello World! ");
}
int main(char[][] args)
{
writefln("Hello World! ");
}
写好程序之后,运行dmd hello.d。之后就生成了可执行文件hello。运行hello,可以看见输出了“Hello World!”这个字符串,并换行了。
对比一下我们用C写的相同程序,发现有个区别,就是main函数的参数改变了。变成了char[][] args。这是一个更好用的结构。运行的程序坐在目录和程序名存放在args[0],第一个命令行参数放在args[1],第二个命令行参数放在args[2],以此类推……
- D语言学习笔记(1)——编译和运行环境以及“Hello World”
- C语言学习篇-1Hello, World!(编写、编译、链接、运行)
- Windows程序设计学习笔记(1)—— Hello world
- WCF学习笔记(1)——Hello World
- Lucene5 学习笔记(1) —— Hello World
- Shiro 学习笔记(1)—— Hello World
- CMake学习笔记(1)——用CMake编译一个hello world程序
- Python学习笔记1——搭建环境与“Hello World”
- MonoDroid学习笔记(一)—— 搭建MonoDroid开发环境及Hello World
- MonoDroid学习笔记(一)—— 搭建MonoDroid开发环境及Hello World
- MonoDroid学习笔记(一)—— 搭建MonoDroid开发环境及Hello World
- MonoDroid学习笔记(一)—— 搭建MonoDroid开发环境及Hello World
- Python学习笔记:01 环境搭建和“Hello World!”
- Android 学习笔记-- 开发环境 和 hello world
- Hello World模块的编译和运行
- C语言学习2:Windows通过命令行编译运行c程序(Hello World)及程序详解
- 驱动学习笔记— Hello World !
- python基础教程学习笔记 — ‘Hello World’
- 如何使用Java自带的正则表达式
- 系统安全之系统密码破解的五种方法
- 随机得到Access数据库记录
- 开发中使用的工具和开源软件
- Rhapsody-嵌入式系统建模工具(1) -- 简单介绍
- D语言学习笔记(1)——编译和运行环境以及“Hello World”
- Win2003远程桌面连接和终端服务
- 82条忠告
- 电子商务
- 异步工作流体系结构的选择
- 偶是菜色的鸟,表什么没想好......
- Linux kernel 2.6 交叉编译工具链
- 柑橘溃疡病识别之样本准备
- 如何让div根据内容自动显示水平垂直滚动条