D语言学习笔记(1)——编译和运行环境以及“Hello World”

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
最近在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:

import  std.stdio;

int  main( char [][] args)
{
    writefln(
"Hello World! ");
}

写好程序之后,运行dmd hello.d。之后就生成了可执行文件hello。运行hello,可以看见输出了“Hello World!”这个字符串,并换行了。

对比一下我们用C写的相同程序,发现有个区别,就是main函数的参数改变了。变成了char[][] args。这是一个更好用的结构。运行的程序坐在目录和程序名存放在args[0],第一个命令行参数放在args[1],第二个命令行参数放在args[2],以此类推……

Java程序启动“Hello, World!”详细分析 从编写源代码到编译成字节码,再到运行Java程序并输出结果,“Hello, World!”程序展示了Java编程的基本流程。这个过程涉及类加载、链接、初始化方法调用等关键步骤。通过理解这些步骤,我们可以更好地掌握Java程序的运行原理,并为进一步学习Java编程打下坚实的基础。 阅读详情

相关推荐

Box2D的编译与运行 - Hello world

转发,请保持地址:http://blog.csdn.net/stalendp/article/details/8574894 最近在编写一个手机游戏,用到Box2D,学习后顺带写了这几篇文章。 整合的方式:把Box2D编译成static Lib, 然后整合 =============== Box2D的编译 =============== 1)新建一个名为Box2D的st

stalendp的专栏 3874

编译工具,支持多种语言

超强大的反编译工具,反编译 C#等多种语言都行。

VsCode及hello world

一早起来,觉得Eclipse有点太“经典”了,于是找了一个免费的VsCode。 PS:学个python,结果IDE搞了N天,什么时候是个头啊.... VsCode安装 下载地址:https://code.visualstudio.com/ 我是用的是Windows x64 Stable版本 配置中文 俺的英文水平比较差,原来用惯了工具还要,换个新工具,自然还是zh_cn比较容易上手...

soonew的专栏 3753

D语言编译器Windows安装包

这个是D语言window环境下编译器的安装包

D Hello World

下面是 D 语言Hello world 代码: import std.stdio; void main() { writeln("Hello, world!"); } Vim 代码高亮测试完毕。

Wiseluster 实验室 413

学习D语言helloworld

去[url]http://www.digitalmars.com/d/download.html[/url]下载dmd.zip(D compiler) for Win32 and Linuxdmc.zip (linker and utilities) for Win32 同一目录下解压dmd.zipdmc.zip,将dmd\bindm\bin加入到path中 看看dmd\samples\...

hideto 434

D语言,环境安装于Helloword程序

dmd install Ubuntu $ wget http://ftp.digitalmars.com/dmd_2.061-0_amd64.deb $ sudo apt-get install libc6-dev $ sudo dpkg -i dmd_2.061-0_amd64.deb CentOS wget http://ftp.dig...

weixin_33767813的博客 203

D语言编译期生成编译期执行技术

借助D语言新的mixin表达式,可以完成一些代码生成功能,比如: [code] template attr_accessor(T, char[] name){ mixin(" private T _" ~ name ~ "; public " ~ name ~ "(){ return _" ~ name ~ "; ...

头脑歪歪 210

跟我一起学“仓颉”编程语言—仓颉语言介绍及Hello World

本章为大家详细的介绍了仓颉编程语言的特性、环境安装以及Hello World的内容。

Cool_foolisher的博客 8576

FPGA设计—UVM验证篇(1) Hello world

UVM的官方下载页面

夏午心晴 1万+

用 Rust 写下第一个 “Hello, World!”

现在,正是时候来写下我们的第一个 Rust 程序:它将会在屏幕上打印出“Hello, world!”这句传统的问候语。通过这个简单的小程序,你会初步感受到 Rust 的编程体验。

hello.reader 1866

Android NDK编译hello world真机运行

Android NDK编译hello_world.c 真机运行本文转载随意 ^_^ 使用NDK生成独立的交叉工具链 Linux下环境配置及编译 测试运行 使用NDK生成独立的交叉工具链 首先需要从NDK包(建议使用最新的NDK)中获取独立的编译工具链,我的编译环境是Linux Mint 18,下文也是在该环境下操作的,ubuntu大同小异: cd 到你下载解压好的ndk根目录,然后继续cd

HaruNatsuAkiHuyu的博客 2236

汇编语言下载安装及使用(hello world,仅供学习参考)

初次汇编语言编写程序输出HELLO,WORLD! 初次编写汇编语言,其中遇到了很多困难问题,下载了很多东西,也查阅了很多关于汇编的资料内容,最后为方便大家直接可以使用快速上手,我把自己花费大量时间精力整理的配置的资源,免费分享给有需要的朋友,以及本篇文章也会提供基本操作过程,希望能够帮助到各位。 温馨提示:因为博主已经下载好的MASM编译汇编代码在64位windows中不兼容无法操作运行,所以会通过使用DOSBox0.74软件挂载MASM到其他盘,在其他盘中进行编译操作完成实验。 一、点击下载博主关于M

m0_61682542的博客 4392

scons实践笔记1)--hello world

好久没记笔记了,又是虎头蛇尾,惭愧!scons是下一代构建工具,学习RT-Thread OS时接触到的,小试一下感觉还是挺好用的,便打算细细学习一番,以用在以后的开发中,工欲善其事,必先利其器嘛,不要急,慢慢来。     假设已安装Python环境(必须),scons官网下载安装包,解压,然后以命令行进入解压缩后的目录,执行python setup.py install即可,注意这里需要root

woyaozuo2012的专栏 2275

ROS1实现hello world

创建完虚拟机添加源密钥更新软件列表安装ROS让 ROS 的环境变量在每次打开终端时自动加载,这样就不需要手动运行 source/opt/ros/melodic/setup.bash来设置 ROS 的环境。新加载当前用户的.bashrc文件测试ROS创建空间并初始化可以看到catkin目录下还有build devel src接下来进入src,创建ROS包并添加依赖。

m0_61286449的博客 699

一个完整的cmake+clang+llvm编译链接hello-world过程

相信目前使用clang+llvm大有人在,我的系统ubuntu18.04前段时间刚安装了不少软件,习惯性的也会装上gcc/g++clang/clang++,关于如何在两个编译器之间切换这里不再赘述,可能参考下面的链接:Switching between GCC and Clang/LLVM using CMake 写这个贴子是因为clang/clang++在网上大都没有一个完整的例子,大部分讲...

tanmx219的博客 2万+

Linux:Hello World 模块

前言Linux 系统为应用程序提供了功能强大且容易扩展的 API,但在某些情况下,这还远远不够。与硬件交互或进行需要访问系统中特权信息的操作时,就需要一个内核模块。下面从 Hello World 模块来说明模块的建立与运行。 环境搭建 开始编写Linux内核模块之前,我们首先要准备一些工具。最重要的是,你需要有一台Linux机器,尽管可以使用任何Linux发行版,但本文中,我使用的是Ubuntu 16.04 LTS,如果你使用的其他发行版,可能需要稍微调整安装命令。 建立 1、创建目录 mkdir -p

Zhengyangxinn的博客 3023

6个变态的C语言写的Hello World

原文:http://cocre.com/?p=914  —— 酷壳 本文仅供朋友们“消遣作乐”,能够看懂是为什么固然不错。看不懂也不必太过认真,如果你要觉得有意思的话,顶顶贴。如果你觉得没什么意思的话,一笑了之。仅供娱乐而已,不必太过认真。  下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码(加密源代码,嘿嘿)下面的

陈皓专栏 【空谷幽兰,心如皓月】 2万+
上一篇: 被boost的date_time库郁闷了一把
yyquick
博客等级 码龄24年 1粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值