Ada

维基百科,自由的百科全书

跳转到: 导航, 搜索

Ada,是一种程序设计语言。源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序。

目录

[编辑] 重要特征

Ada语言最早是针对嵌入式和实时系统设计的,并且在今天依然在这方面使用广泛. Ada95版, 是由INTERMETRICS公司的塔克.塔夫特于92到95年间设计的,当时主要是希望改进对于 系统,数字,财务软件编程的支持.

Ada语言的重要特征就是其键入式风格, 模块化设计, 编译检查,平行任务处理,异常处理及泛型编程. Ada在95年加入了对面向对象设计的支持, 包括动态分配等.

Ada的编译检查主要是针对没有分配的内存读写的保护, 堆栈溢出错误, 单个错误空闲, 队列读写错误以及其他可以避免的小问题. 这些检查可以在为增加效率的情况下被取消, 但是在编译的时候他们却能带来很高的效率. 同样它也包括对程序的严正的设置.因为这些原因,它被广泛应用于一些非常重要的系统中,例如航空电子学,武器及航天飞行器的操作系统中.

同样它支持很多的编译时间检查,这些检查被用来避免一些错误的发生.这种错误往往是在其他语言中在运行以前都不能被察觉到的,需要在源码中加入特殊的检查设置才能被发现.

Ada的动态内存管理非常安全和高规格, 它类似于JAVA语言却不同于C语言的.这种特殊功能并不需要特殊的运行设置. 尽管这种语言的语意结构允许对于不能读写的目标进行自动的碎片搜集,但是大多数运行都不支持它. Ada却支持有限形式基于区域的存储管理. 无效的读写常在运行时候被检查出来(除非这种检测被人为关闭) 并且有时候在编译时候就被发现.

Ada语言的定义同国际标准化组织(ISO)的标准有很大不同,因为他是一个自由内容形式的. 这种做法的后果是被广大程序员只能从它的标准化文档(普遍认为是Ada的参考使用手册(ARM))寻找细节性的技术问题,但是普遍情况是一本标准教科书却可以在其他不同语言上使用.

[编辑] 历史

70年代, 美国国防部 因为它所属项目的编程语言数量而倍受关注.这些语言中的很多都是完全独立于硬件的,并且其中没有一个是支持安全模块编程的. 1975年 高次阶语言工作组 (HOLWG) 终于成立了.它的主要目标就是寻找或者创造一些适合国防部需要的语言来减少这种现存的编程语言数量.它带来的结果就是Ada语言. 因此,这些编程语言数量从1983 的450下降到了1996的37种.

工作组开发出了语言要求文档—稻草人, 木头人, 锡人, 铁人 和钢人 文档. 许多现存的语言都被仔细地检查,但是1977年 这个团队却声称没有任何现存语言符合他们的条件.

[编辑] Ada语言的"世界,你好!" 示例程序

一个Ada语言编写的"你好世界"Hello world program程序:

with Ada.Text_IO; 
 
procedure Hello is
begin
    Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

Ada.Text_IO.Put_Line处有一些快捷图标, 不需要很多的文字输入, 但是对于这里的理解来讲并没有多大意义。细节性的问题請参考Ada Programming/Basic

[编辑] 关于阿利亚纳五号的失败

一个普遍的关于欧洲航天局阿利亚纳五号火箭失败的说法是因为 Ada 语言在编译过程的检查失败导致的。 在阿利亚纳四号 中已经证明了这些检查是不需要的。.尽管广泛的检查和正确的异常处理可能导致这些问题,问题本身就是一个设计好的决定。这个决定是为了拯救计划的一部分,并且它的软件是从阿利亚纳四号上直接拿过来使用的,并没有经过任何分析和修改。最严重的是在阿利亚纳五号运行的程序都没进行过测试。


参考阿利亚纳五号

[编辑] 参见

[编辑] 参考书目

[编辑] 国际标准

[编辑] 书目

您可以在維基教科書中查找此百科条目的相關電子教程:

[编辑] Ada的百科

[编辑] 总体信息

[编辑] 辅助工具书

[编辑] 工程

[编辑] 注释


[编辑] 外部连接

Template:Major programming languages small

个人工具