随笔分类 -  ADA (Programming Language)

摘要:全本论述其理解的哥德尔(第一)定理,即不完备性定理,并简述其第二定理,即不一致性定理。 阅读全文
posted @ 2016-01-20 15:17 quanben 阅读(6318) 评论(0) 推荐(0)
摘要:This is the final part of the series, where the details of the code that works on the big integer type to generate Fibonacci sequences are discussed.With all the basic operations on the big integer type having been elaborated in the package and available for use, the main program can directly use th 阅读全文
posted @ 2011-12-10 14:40 quanben 阅读(221) 评论(0) 推荐(0)
摘要:Now it goes the implementation of the package.Some points about the design. Firstly the structure of the number is more clear to see here. As is said in the previous post, components of the number are represented by cells of the array. However, in regards to the maximum magnitude each component hold 阅读全文
posted @ 2011-12-10 11:50 quanben 阅读(228) 评论(0) 推荐(0)
摘要:When Augusta Ada King, the Countess of Lovelace was working on her documentation, somehow winning her the fame of the first programmer in human history, with regards to the algorithmic design for Babbage's analytical machine which never got realized in either of their lives, one of the algorithm 阅读全文
posted @ 2011-12-09 21:48 quanben 阅读(217) 评论(0) 推荐(0)
摘要:ADA集成开发环境GNAT-GPS集成了CVS功能。其基本配置界面如下:这里对ariane工程(一个新建的ADA库代号,google code地址http://code.google.com/p/ariane/)(Sorry, with IME turned off, the rest of the article is to be in English)This is a section inside the project preference which can be brought up by clicking on the appropriate item in thecontext 阅读全文
posted @ 2011-12-08 20:48 quanben 阅读(587) 评论(0) 推荐(0)
摘要:所有计算机编程语言从本质上说都是综合考虑其执行环境的因素,旨在找到其问题域的对象和行为的最佳描述规则;其关于问题域的处理某种程度上说是一种抽象的建模过程。如前所述,ADA的类型系统是这个语言中最为复杂的内容之一。而类型系统很大程度上表现了一个语言对问题域中对象的一种哲学态度。ADA差不多将强类型走到一个极端,体现了它的一种态度(这中强类型可能已经强到了差不多不需要反射Reflection这样的机制了,至少在其基本类型范围内)本文将讨论ADA的各种数据类型,其间关系,以及在泛型中这些数据类型的表述。以下是一个ADA各种类型的派生关系图。走一遍这个树状结构可以发现这个设计思路还是有相当合理性的。注 阅读全文
posted @ 2011-11-25 22:04 quanben 阅读(684) 评论(0) 推荐(0)
摘要:ADA语言内建的字符串类型是定长类型,基本接近相当于C的静态字符数组。对ADA而言,String也完全是通过字符数组的严格定义派生出来的(可参见wikibooks关于ADA类型系统的条目;关于ADA的复杂的类型系统需要另行撰文)。定长字符类型对应的操作包在Ada.Strings.Fixed中。另外String类型也有很多这个类型的Attribute。这类字符串通常在编译期决定长度(由其界限参数指定或所附值决定);但对ADA而言,这种长度确定也可以宽松一点:字符串和所有数据变量实例一样都定义在变量定义区,它可以不限定长度,而由一个函数返回的字符串确定;另一方面,对于一个子程序变量定义区的字符串, 阅读全文
posted @ 2011-11-19 18:07 quanben 阅读(455) 评论(0) 推荐(0)
摘要:ADA支持对几乎它自身的所有运算符的重载,虽然ADA的运算符系统不像C/C++那样庞大灵活,ADA提供这种重载某种意义上说是为了达到作为对象操作的一致性要求,这也理应是运算符重载的目的。由于ADA本身的运算符定义特征,所有运算符都是单目或双目的,而ADA将他们均看成函数(function),其参数是输入性(in)对象类型,输出是这种对象类型。以下是一般用来阐释运算符重载的经典方法之一,复数的定义和运算。其实ADA本身也提供了复数的泛型模板,但是这里的小例子强调一些ADA的语言特征。比如ADA本身提供的复数泛型只支持数值类型作为复数分量,而这里采用了任何类型。复数定义文件(complex.ads 阅读全文
posted @ 2011-11-19 10:42 quanben 阅读(371) 评论(0) 推荐(0)
摘要:普通的ADA并不含有垃圾收集等托管程序的特性,除非当ADA的目标运行时建立在Java Virtual Machine或.NET系统上。所以从这个对象内存分配角度,ADA和C++基本上是等价的。ADA提供的语言特性,基本上足以使得ADA能够实现智能指针。当然,是不是有必要在ADA中使用智能指针(考虑ADA常用的思考建模方式),其完善程度(指针的类型,对于OO的支持和对于一般数据的支持)又是另一会儿事。智能指针再智能也不能达到托管程序所能达到内存管理功能(例如简单的引用计数是无法应对孤立环路结构的释放的)。当然,纯粹展现一下ADA的语言特性,这不失为一个好的例子。首先是声明(autoptr.ads 阅读全文
posted @ 2011-11-16 22:28 quanben 阅读(473) 评论(0) 推荐(0)
摘要:多态是面向对象的核心特性。一说ADA即使95也没有很好地支持多态性。这可能并不是其一个显著缺陷,而是设计者认为多态性不一定能在ADA语言的通常应用模式中能很好地发挥。但毕竟多态性是很重要的一种属性。好在2005版本做了一些改进,其关键是引入了class-wide类型,即在基类上调'Class记号(Attribute)产生的类型。由于ADA主张常用静态的对象,所以这种情形下的多态看上去有点奇怪;另一方面多态往往和指针引用有很大关系,ADA的指针对对象和指针的声明和类型指定都很严格,所以用起来不像其他语言那么方便灵活。以下示例基本演示这个特性,并一些其他的语言特性和编程要点:1. 首先是定 阅读全文
posted @ 2011-11-15 21:33 quanben 阅读(491) 评论(0) 推荐(0)
摘要:以下是ADA实现的质因数分解程序,其等价C#程序可见:http://topic.csdn.net/u/20111112/18/2bf17a93-862d-458e-91d7-8682dc899315.html(由于没有专门的ADA代码显示模板,只能选择最相近的Delphi模板,故关键字标识会不正常)首先是功能单元模块(package)的声明文件(prime-factors-resolver.ads):with Ada.Containers.Doubly_Linked_Lists; use Ada.Containers; package prime_factors_resolver is ... 阅读全文
posted @ 2011-11-13 16:11 quanben 阅读(532) 评论(0) 推荐(0)
摘要:为什么要写关于这么古老的语言(1980年左右)的文章呢?因为我想既然mainframe用的cobol这么恶劣的语言都写了那么多了,为何不写一点我比较喜欢的语言呢?虽然除了高安全级控制和仿真领域之外ADA是不怎么用的。首先说两句我个人对ADA语言的态度:从编写大型程序的OO语言而言(我基本主要用的也就是这类语言),ADA在我评价中的排名是和C#和C++一个级别上的。ADA很大程度上是Java的前驱,而且在演进过程中相互影响。但不知什么原因,我个人向来不太喜欢Java。其他Smalltalk,Eiffel,Ruby,Python之类没接触过(没时间,关于Python德德是行家),而这些面向对象语言 阅读全文
posted @ 2011-11-11 21:03 quanben 阅读(581) 评论(0) 推荐(0)