写点什么

D 语言和 Visual D 简介

  • 2011-05-26
  • 本文字数:1054 字

    阅读完需:约 3 分钟

D 语言是一种由 Digital Mars 公司创造的系统编程语言,它专注于“把 C 和 C++ 的能力和高性能与先进的语言——像 Ruby 和 Python——的高生产力结合起来。” 尽管它仍然是一种静态类型的语言,可以直接编译成本地代码,而且语法看起来与 Java 或者 C#非常类似,但是它做出了很多有意义的改进。

这些改进包括明确地支持惰性参数。当我们使用关键字“lazy”标记一个形参时,就意味着相关的实参会被赋值 0 次或者多次。这与 Haskell 之类的语言不同,它会延迟对实参赋值 0 次或者 1 次,但不会再多。

为了保证程序的正确性,特别是在并行以及多线程的领域中的正确性,D 语言支持把“immutable”和“const”作为一等概念。和 C++ 不同的是,在 D 语言中的 immutable 和 const 修饰符是可传递的。如果我们用 immutable 标记了一个变量,那么不但不能对其进行变更,也不能变更通过它所能够访问的任何变量。const 关键字的工作方式和 immutable 类似,不过特定的对象还是可以通过 non-const 的引用来修改变量的值。

D 语言还包括了很多来自于其它语言的流行特性。例如,它拥有 for-each 循环、字符串转换、数组分片、闭包、try-catch-finally 块,以及值类型和引用类型的分离等等。同时,它还考虑到了直接对内存的访问,80 位的浮点型数字、结构成员排列控制以及内联程序集。

通常,因为安全性,把源代码转换为本地代码会付出高昂的代价。C 和 C++ 是最容易受到类似于缓冲区溢出之类的编码错误影响的,其它大多数本地语言也都一样。D 语言通过既在编译时又在运行时执行数组边界检查来避免这些问题。同样,非零长度的数组的内容会自动初始化为它们的默认值。

关于内存管理,D 语言和.NET 非常类似。默认情况下,引用类型会存储在垃圾回收堆中,而值类型或者会存储在堆栈中,或者存储在其它对象中。D 语言也可是分配堆栈来存储引用类型,但这不可避免要使用指向它们的指针。和.NET 一样,你还可以让指针指向非托管的内存。让这些彼此分离非常重要,因为很多你能够在非托管的指针上能够执行的操作,在托管指针上执行是不安全的。

对于能够使用非快捷版 Visual Studio 的开发者来说,有一个项目叫做 Visual D,它提供了 Visual Studio 插件。Lloyd 在一篇文章中介绍了如何在你的环境中安装Visual D

当前D 语言有四种实现。 Digital Mars 公司为 Windows、Linux、OS X 和 FreeBSD 提供了免费的编译器。还有一种 Gnu D 编译器,它是构建在 gcc 之上的。而 LLVM 也发布了他们的 D 语言编译器的 beta 版本,最后还有针对.NET 的部分实现

查看英文原文: An Introduction to D and Visual D

2011-05-26 06:505130
用户头像

发布了 340 篇内容, 共 131.9 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

Mac应用程序清理卸载工具:App Cleaner & Uninstaller for Mac 中文版

你的猪会飞吗

Mac软件下载站 mac破解软件下载

我的数据清洗能手小浣熊

轻口味

征文活动 办公小浣熊 小浣熊家族

ToB活动营销先要区分战略级活动、常规级活动和与我无关的活动

客户在哪儿AI

ToB营销 活动营销 ToB获客 ToB销售

开源创新引领未来|酷克数据亮相PostgreSQL中国技术大会,荣获数据库杰出贡献奖

酷克数据HashData

供配电学习笔记 day4

万里无云万里天

自动化 电力 工厂运维

小浣熊,本领强,助我轻松把活忙

知日

AI #人工智能 小浣熊家族

Dash for Mac(好用的API文档工具) v7.2.4版

Mac相关知识分享

业务连续性专题:DBless

agnostic

高可用架构

破解缺陷管理:挑选顶尖系统的秘籍

爱吃小舅的鱼

缺陷跟踪

小浣熊家族:自媒体新手的快速成长指南

程序员海军

AI 办公小浣熊 小浣熊家族 小浣熊

客户在哪儿AI用数据解决ToB企业市场和销售脱节问题

客户在哪儿AI

ToB营销 ToB获客 ToB增长 ToB销售

无损音乐播放器推荐:Audirvana for Mac 中文激活版

你的猪会飞吗

Mac 软件

深入了解项目跟踪软件的关键优势

爱吃小舅的鱼

项目进度管理

多功能文件同步对比工具Beyond Compare 4 for Mac

Mac相关知识分享

XMind for Mac:专业思维导图软件,提升思维与工作效率

Mac相关知识分享

我的数据分析大师-办公小浣熊

黑白相间

数据分析 办公小浣熊

如有神威,办公小浣熊助我轻松拿捏数据分析

战场小包

小浣熊 AI办公助手

从0-100:钓鱼场小程序开发笔记(上)

CC同学

java+uniapp实现微信JSSDK扫码功能

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

Oracle,MySQL,SQLServer三种关系型数据库的特点介绍

源字节1号

小程序 开源 软件开发 前端开发 后端开发

加速数字化转型,信创自主可控:TapData 为银行业数据管理能力建设提供新思路

tapdata

ToB市场部如何选择最优的合作平台

客户在哪儿AI

ToB营销 ToB获客 ToB增长 ToB销售

如何彻底解决ToB企业市场和销售脱节的问题

客户在哪儿AI

ToB营销 ToB获客 ToB销售

想知道海外技术面试都考些什么吗?

王中阳Go

Go 数据库 面试 算法 面经

实测小浣熊AI办公神器(效率翻倍不是梦)

攻城先森

人工智能 智能助手 大模型 AIGC 办公小浣熊

【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版本

码匠许师傅

qemu OpenHarmony risc-v

D语言和Visual D简介_Java_Jonathan Allen_InfoQ精选文章