ADA语言Hello World

为什么要写关于这么古老的语言(1980年左右)的文章呢?因为我想既然mainframe用的cobol这么恶劣的语言都写了那么多了,为何不写一点我比较喜欢的语言呢?虽然除了高安全级控制和仿真领域之外ADA是不怎么用的。

首先说两句我个人对ADA语言的态度:

从编写大型程序的OO语言而言(我基本主要用的也就是这类语言),ADA在我评价中的排名是和C#和C++一个级别上的。ADA很大程度上是Java的前驱,而且在演进过程中相互影响。但不知什么原因,我个人向来不太喜欢Java。其他Smalltalk,Eiffel,Ruby,Python之类没接触过(没时间,关于Python德德是行家),而这些面向对象语言和C++和ADA之类相比还是有很大区别的。

ADA是受Pascal直接影响产生的(其他还有ALGOL之类)。Pascal被称为教学语言,以严谨著称。而在我看来Pascal有很多方面是不错,但有些地方“严谨”得有点傻掉了,隐约记得它里面有一套类型相容性规则,简直有点胡闹了(所幸应该被Delphi给剔除掉了)。再说了,通常编程语言总是想要严谨的,比如我就不认为有任何理由认为C不严谨;某种意义上讲,凡是能让计算机正确解释的东西都能说严谨的(当然像BASIC这样的语言设计随意了些,C++铺展得太开让人感觉过于狂躁,而动态类型语言可能是可以说成不太严谨)。所以Pascal只应当说是教学和学习思维上的严谨,语法上比较清晰,类型检查和控制比较严格(由此也引致冗长性,因为比如C/C++一个符号能做的事它要用一个完整语句来做)。但因为ADA完全秉承并极大发扬了这点,我在ADA看到了从上到下的高度一致性和严谨性加上其潜在的强大性,这点却是Pascal望尘莫及的。Pascal的另一些面向对象扩展有如Objective Pascal和Delphi,Delphi是不错,相比ADA具有易用性(因为是Java和C#这条路子的),但是深入研究却反衬出ADA的严谨和强大。当然这强大不是我说了算的,我也说不清楚。反正只要知道这个语言有这么几个令人敬畏的特性:

- 美国军方设计用来替代各种过往语言,用于统一开发高安全稳定性程序用的语言,多数用于军事(武器装备和系统)和航天的控制和设计、关键单位(火车、航空、电站等)的系统管理和控制等。有人这样描述,ADA是一种一旦编译通过后能很放心使用的语言,可能不尽恰当,但说明一些问题。

- 设计用来开发极大规模的系统。这说明强大性(至少有可维护性和可扩展性吧)。

- 广泛用于嵌入式系统开发,而它的一个衍生品VHDL是硬件开发语言。所以往往这个语言的性能是不太令人担心的(当然我还是不很理解如何程度依赖于编译器和运行环境)。

- 具有内在的并发支持(这个也很玄,我不知道一个语言的这些内在特性如何程度上依赖于系统并实现,可能还是有很大的负荷)。

- 还在不断发展,83,95版,最近的是2005年标准。

最后用一个Hello World作为本篇结尾,引自wikipedia。

with Ada.Text_IO; -- 表示使用这个package的内容
use Ada.Text_IO;  -- 表示展开这个package的命名空间
procedure Hello is  -- 定义过程,注意这个is就显得很严谨
begin
  Put_Line("Hello, world!");   -- 打印
end Hello;        -- end后必须跟名称

和一些资源:

1. Windows下的开源开发环境:ADA Gide http://adagide.martincarlisle.com/  其实这个不太好。

2. 最权威的开发环境是ADACORE的GNAT:http://libre.adacore.com/libre/ 这个的免费版就已经很不错,至少可以用用(下载链接:http://libre.adacore.com/libre/download/),虽然已经遇到一些问题和bug。(Linux环境往往会附带ADA编译器)

3. ADA 95标准和参考: http://www.adahome.com/rm95/

4. ADA 2005标准和参考:http://www.adaic.org/ada-resources/standards/ada05/

5. ADA的wiki books:http://en.wikibooks.org/wiki/Ada_Programming

6. 谁在用ADA:http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html

7. ADA也有不少问题,一些ADA的比较研究:http://archive.adaic.com/intro/c.html

8. Most recommendable book for learning ADA 2005: Rationale for ADA 2005, PDF download

你可能感兴趣的:(python,语言,Delphi,smalltalk,pascal,编译器)