D语言和Visual D简介

摘要:
为了保证程序的正确性,特别是在并行以及多线程的领域中的正确性,D语言支持把“immutable”和“const”作为一等概念。和C++不同的是,在D语言中的immutable和const修饰符是可传递的。D语言还包括了很多来自于其它语言的流行特性。关于内存管理,D语言和.NET非常类似。对于能够使用非快捷版VisualStudio的开发者来说,有一个项目叫做VisualD,它提供了VisualStudio插件。Lloyd在一篇文章中介绍了如何在你的环境中安装VisualD。当前D语言有四种实现。

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

免责声明:文章转载自《D语言和Visual D简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇eclipse创建新的工作空间导入项目配置环境并启动过程记录exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DirectX SDK版本与Visual Studio版本 [转]

DirectX SDK版本与Visual Studio版本    分类: DirectShow |  标签:sdk  directshow  directx  版本  visual  |字号 订阅     对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译。一开始我也为...

《转》Visual Studio 2015的安装与基本使用(社区版)

https://www.cnblogs.com/wangzexi/p/4906640.html 为什么要使用Visual Studio 2015? 它是中文的、界面友好、自动补全、实时语法错误提示(上图中波浪线部分)、单步调试……最重要的社区版是免费的!所以你不必再使用破解的、老旧的的不兼容现代系统的VC++6.0,Come to VS2015 and...

C#编程(四)

原文地址:http://blog.csdn.net/shanyongxu/article/details/46400067 C#预定义数据类型 C#中的可用类型以及及其定义非常严格,C#中获得数据类型分为两种,第一种是值类型,第二种是引用类型.区别是值类型直接存储值,引用类型存储值的引用.值类型存储在堆栈中,引用类型存储在托管堆中.要能区分值类型还是引用类...

在此计算机中仅有部分visual studio2010产品已升级到SP1,只有全部升级,产品才能正常运行解决办法

微软提供了visual studio2010 SP1的 Web安装程序和 ISO两个版本,前者几百K,但要在线下载很久,后者1.5GB,可以离线安装,SP1适用于Visual Studio 2010的所有版本(学习版、专业版、高级专业版、旗舰版、专业测试工具版),它将对已安装的Visual Studio 2010的所有版本和语言进行升级。 下载VS2010...

Visual Studio Code 从介绍,安装到配置所需插件

该文章将会介绍到vs与vs code的区别,并且会详细介绍vscode的安装步骤,和我所了解过的插件配置(如有遗漏,欢迎大家补充并提出宝贵意见) 提到visualstudiocode,想必你也听说过visualstudio(vs) 那就从查阅过的资料大致总结以下几点,关于这两个产品的区别: 首先总的来看,它们都是微软公司的产品 名字不一样当然会有不一样的用...

Windows 7下一个:该应用程序不能正常启动(0xc0150002)

在新系统中正确安装QQ2010无法执行,同一时候安装的TM2009也无法执行。 相同显示为“应用程序无法正常启动(0xc0150002)。 请单击“确定”关闭应用程序”。 在百度,Google中搜索中发现有很多人遇到了相同的问题,并且软件也不限于腾讯软件,有摄像头、CAD的各种软件。 打开查看后发现大多数答案并不对,也无法解决问题。经过我的研究以上软件...