Electronic Joint Business

Solution for E-Business

ada

Ada 语言编程 (二)

由于 Ada 出生年月略迟了一点,加上现在的操作系统基本上由 C 或 C++ 写成,导致 Ada 在“平民层”的推广比较糟糕,至今还不是很流行,Why Ada isn’t Popular 一文对此有比较详细的解释。而 Ada 爱好者们为了显示 Ada 的优越性(这种心情相当能理解),将 Ada 与 C、C++ 做了一系列比较,其结果反正综和指数都是 Ada 高,这方面文章有不少,如 Comparing Development Costs of C and Ada,Contrasts: Ada 95 & C++ 等等。在这里,我们只初略地了解一下 Ada 的优势即可,在读者朋友接下去的学习中,应该是能从心里感受到 Ada 的优点。1

  • 更高的安全性、可靠性。Ada 中对于访问内存、数值计算等很多方面有一些严格的规定,而没有 C 和 C++ 那么自由;程序的错误绝大部份能在编译和运行时检测到,另外,语言也包含异常特性,能方便地处理错误。
  • 更高的移植性。 Ada 最初的语言环境中就有了异常(约等于 Unix 下的 Signal)、任务(线程)、分布式计算、随机数产生、宽字符集等众多特性,而在其他语言中,这些特性往往随系统而异。即使 Ada95 里缺少一些功能,也可以通过额外标准和函数库来弥补:比如 GDI 库方面,可以使用 GtkAda;
  • 语法明确,基本上没有令人混淆的地方。Ada 程序的源代码远远比 C 或 C++ 的代码易懂。

总之,C 和 C++ 能做的 Ada 肯定能做,但 Ada 要省时方便得多。在学习 Ada之后,无需多说也就明白了。

第一个程序
大部份书籍一般都是用 “hello world” 程序来开始,我们就来看一下在屏幕上输出 “Hello World!”的简单例子。

— filename:hello.adb;
 with Ada.Text_IO;
 procedure Hello is
 begin
    Ada.Text_IO.Put ("Hello World!");
    Ada.Text_IO.New_Line;
 end Hello;

现在让我们分析上述的简单程序:

[000]标示该程序文件名为 hello.adb,在程序中并不需要;– 是注释符,表示从其所在位置至行尾都是注释,对程序没有什么影响,与 C 的 /* */类似。

>>> 阅读全文

 

ADA 语言编程 (一)

文章评价:
在上个世纪 70 年代,美国国防部 (DoD) 发现其所属的嵌入式计算机系统项目中,使用的编程语言数量逐日增多,其中很多语言十分陈旧或者需要依赖于硬件,而且没有一种语言支持安全的模块化编程,对此 DoD 感到十分担心。为此,DoD 在 1975 年成立了高级语言工作组 (HOLWG),它的使命是就是寻找或者创造某种适合国防部需要的编程语言,以便减少现有编程语言数量。该小组最终的工作成果就是 Ada 语言。由此,这类项目中使用的高级编程语言的数量从 1983 年的 450 种编程语言,减少到 37 种(1996年)。

高级语言工作组精心设计了 Steelman 语言规范,这是一系列用来述明编程语言需要满足哪些要求的文件。许多既有的语言按次规范进行了审查,但最终(1977年) 团队得出结论:没有现有的语言符合规格。

最终 HOLWG 提出了开发一种新的编程语言的建议,并且雇佣了四个承包商分别进行有关方案开发,代号分别是红 (Benjamin Brosgol 所领导的Intermetrics)、 绿 (Jean Ichbiah 所领导的 CII Honeywell Bull)、 蓝 (John Goodenough 所领导的 SofTech) 和黄 (Jay Spitzen 所领导的SRI International。1978 年 4 月公开审查之后 红和绿这两个方案进入了下一阶段。在 1979 年 5 月,最终选择了 Jean Ichbiah 所领导的 CII Honeywell Bull 所实现的“绿”方案,并定名为 Ada — — 这是为了纪念 Augusta-Ada-Lovelace 伯爵夫人。该方案受到了上世纪 70 年代 Ichbiah 和他的小组所开发 LIS 编程语言的影响。

由于 Ada 以安全性为第一(safety-critical) 的特性 ,因而 Ada 除了在军事上得以应用,也应用到了那些软件 bug 会产生严重后果的商业项目中,例如航空和空中交通管制、 商业火箭 (例如阿丽亚娜 4 和 5),卫星和其他空间系统、 铁路运输和银行。例如,波音 777 的线传飞控系统软件就是 Ada 编写的。加拿大的自动化空中交通系统是由 100 万行的 Ada (源代码计数) 构成的。得益于 Ada 的高级分布式处理、 分布式的 Ada 数据库和面向对象的设计,Ada 也用在其他的空中交通系统,如英国的下一代 iFACTS 空中交通管制系统是用 SPARK Ada 设计和开发的, 同时它也运用于法国 TGV 高速铁路系统中的 TVM in-cab 信号系统,以及巴黎、 伦敦、 香港和纽约地铁信号系统。

标准
1983 年该语言成为了 ANSI 标准 (ANSI/MIL-STD 1815A), 该版本未做更多的修改就在 1987 年成为了 ISO 标准 (ISO-8652:1987)。该版本就是我们知道的 Ada 83,(按 ANSI 接受为标准的时间),有时也按 ISO 接受为标准的日期称为 Ada 87。

>>> 阅读全文

 

, , , ,