飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4783|回复: 6

美国防部ADA编程绝版资料

[复制链接]
  • TA的每日心情

    2019-3-20 17:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-4-5 09:08:23 | 显示全部楼层 |阅读模式
    Ada 语言最初设计是为了构建长周期的、高度可靠的软件系统。它提供了一系列功能来定义相关的数据类型(type)、对象(object)和操作(operation)的程序包(package)。程序包可以被参数化,数据类型可以被扩展以支持可重用库的构建。操作既可以使用方便的顺序控制结构,通过子程序(subprogram)来实现,也可以通过包含并发线程同步控制的入口(entry)来实现。Ada 也支持单独编译(separate compilation),在物理层上支持模块性。

        Ada 包含了很复杂的功能以支持实时(real-time),并发程序设计(concurrent programming)。错误可以作为异常(exception)来标示,并可以被明确地处理。Ada 也覆盖了系统编程(system programming);这需要对数据表示和系统特性访问的精确控制。最后,提供了预定义的标准程序包,包括输入输出、字符串处理、数值计算的基本函数和随机数生成。

    ——译自《Ada Reference Manual》Section1:General

        在本章里,我们将会初步介绍一下 Ada,以给读者留下大致的印象。

    1.2 Ada 的历史(The History of Ada)

        为了更好的理解 Ada,它的历史有必要简要地了解一下。

        1974 年时,美国国防部(DoD)意识到开发和维护嵌入式系统(固化在硬件中的系统,如导弹弹导系统)耗费了过多的时间,精力和资金。 

        当时,在使用的计算机语言有 450 多种,这增加了开发新系统以及培训程序员使熟悉现有系统的时间和成本。维护工作也由于没有标准化的工具(编辑器,编译器等)而受阻。所有这些因素使 DoD 意识到它需要一门强大的语言,能被所有嵌入式电脑供应商使用。

        开发工作始于 1975 年,当时 DoD 列举了一系列的语言需求;但没有一门现有语言指定了这些特性,因此在 1977 年,DoD 起草了一份建议,开发一门新的语言。不像COBOL 这些语言由专门的委员会制定,新语言是一场竞争的主题,在产业界和学术界的评估中产生。

        在众多竞争者当中,有 4 家被选中以完成进一步的工作。最终只剩下 Cii-Honeywell Bull 公司。这门语言被命名为 Ada。设计小组由 Jean Ichbiah 领导,对语言全权负责。

      在 1983,Ada 成为了一个 ANSI 标准 ANSI/MIL-STD-1815A。此年成为一个 ISO 标准。在参考手册中定义的语言通常称为 LRM 或 ARM(Ada Reference Manual)。在 Ada 的相关书籍和编译器的报错信息中经常出现手册内容的引用。对于任何 Ada 站点,参考手册都是推荐的;虽然很难阅读,但它是所有 Ada 问题的最权威解释(一个小组正在澄清语言定义中已发现的语义不清的内容)。

        Ada 也经过了一次修正,即 1995 的新的 ISO 标准。新标准修正了 Ada83 的很多缺陷,并进一步扩展了它的功能(在修正工作中,有个临时的标准,即 Ada9x,不少 Ada 文章是在 这段时间写的,因此有些内容在细节上可能与 Ada95 有所区别,但主要原理差不多)。

        为了防止 Ada 编译器的不兼容版本的扩散,Ada Joint Program Office (控制 Ada 语言的执行部门,于 1998 年 10 月 1 日关闭,见 Ada Joint Program Office closed) 采取了不寻常的做法 - 他们注册 Ada 商标。除非通过他们的兼容性测试,编译器厂商不允许出售 'Ada' 编译器。这在不久以后放松了,保护协议变成了 `Validated Ada'。因而产生的 Ada 确认证书被限制在一定的时间内并有一个期满时间。当时间过期后,该编译器不能再被标记为`Validated Ada' 编译器。通过这种方式,AJPO 确保当前市场上的编译器与当前标准相一致。

        目标是使所有的 Ada 程序能在所有系统上被编译-在这点上,AJPO 比其它语言小组做得好。

    上述内容基本上是从 Quick Ada 翻译过来的(以前翻译该教材“半途而废”的残留品,直接引用一下了),Ada 语言的详细历史细节见 The History of Ada

    1.3 与 C 和 C++ 的比较(Contrast:Ada and C,C++)

        由于 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 的优点。

    更高的安全性、可靠性。Ada 中对于访问内存、数值计算等很多方面有一些严格的规定,而没有 C 和 C++ 那么自由;程序的错误绝大部份能在编译和运行时检测到,以至于可以不需要编译器,另外,语言也包含异常特性,能方便地处理错误。
    更高的移植性。在 Unix 和 Windows 下有 C 编程经验的朋友应该对于兼容性深有体会,很多代码纯粹是为了适应不同的系统增添的,对于实际工作没多大用处。但 Ada 的初始语言环境中就有了异常(约等于 Unix 下的 Signal)、任务(线程)、分布式计算、随机数产生、宽字符集很多特性的支持,而在现在的具体操作系统中,这些特性往往随系统而异。即使 Ada95 里缺少一些功能,也可以通过额外标准和函数库来弥补:GDI 库,可以用 GtkAda,在 Windows 和 X 下通用;Ada 也有一个 Posix 接口的标准,可以使用函数库 Florist 来调用 Posix 的函数…… 用户层是大大省力---只要自己的操作系统上有所需的编译器和函数库即可。
    语法明确,基本上没有令人混淆的地方。Ada 程序的源代码远远比 C 或 C++ 的代码易懂。看程序的人是减轻了不少脑负担。
    ……
    ……
         ……

        总之,C 和 C++ 能做的 Ada 肯定能做,但 Ada 要省时方便的多。读者在学习 Ada之后,无需多说也就明白了,笔者在初学 Ada 时就有耳目一新的感觉,唯一的遗憾是 Ada 不流行。

    美国防部ADA编程绝版资料.txt

    186.28 KB, 下载次数: 29, 下载积分: 飘云币 -2 枚

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-4-10 13:40:40 | 显示全部楼层
    ADA  第一次听说..如果真的这么好 为什么没有流行起来...
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-4-13 10:35:55 | 显示全部楼层
    什么  东西呀
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-4-16 22:59:50 | 显示全部楼层
    如果真的这么好 为什么没有流行起来...
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2023-3-8 13:47
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2010-9-6 23:03:11 | 显示全部楼层
    如果真的这么好 为什么没有流行起来...
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-9-7 06:26:49 | 显示全部楼层
    中文书籍:
    Ada程序设计语言高级教程(教材,共78万字),解放军出版社出版,1998
         北京工业大学软件学院 蔡建平教授

    Ada语言程序设计(部分)  http://all.163.com/it/school/apl/   
         王振铭


    主要网站
      https://libre2.adacore.com/  GNAT Software home
      http://www.adacore.com/      GNAT Pro Coporotion
      http://www.iste.uni-stuttgart.de ... e/ada-software.html  相当多的ADA资料,可惜很旧了.
      http://www.adaic.com/        Ada I see ?很好资料.
      http://www.adahome.com/      Ada Home[英文]提供ada较新的信息。
      http://www.AdaPower.com
      http://info.acm.org/sigada/ Ada兴趣小组, 比较规范的资料
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-9-7 08:05:17 | 显示全部楼层
    为什么没有流行起来...
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表