跳转至内容

Ada 编程

100% developed
来自 Wikibooks,开放世界中的开放书籍


欢迎来到 Wikibooks 上的Ada 编程教程。这是第一个涵盖Ada 教程,涵盖Ada 200520122022标准。如果您是初学者,您将学习最新的标准 - 如果您是经验丰富的 Ada 用户,您可以了解新功能。

Ada 编程的当前开发阶段为“75% 开发完成 2024年6月8日 (2024年6月8日)”。到目前为止,本书已有 600 多页,这使得Ada 编程成为最大的编程维基书籍之一。[1]

但仍然有改进的空间 - 请帮助我们扩展Ada 编程。即使是初学者也能找到参与的领域。

关于 Ada

[编辑 | 编辑源代码]
奥古斯塔·阿达·金,勒芙蕾斯伯爵夫人。

Ada 是一种适用于所有开发需求的编程语言。它具有直接支持结构化面向对象泛型分布式并发编程的内置特性。

Ada 是快速应用开发极限编程 (XP)自由软件开发的良好选择。

Ada 以奥古斯塔·阿达·金-诺埃尔,勒芙蕾斯伯爵夫人的名字命名。

大型编程

[编辑 | 编辑源代码]

Ada 对良好的软件工程实践给予了独特的重视,并提供了强有力的支持,这些实践可以很好地扩展到非常大的软件系统(数百万行代码和非常庞大的开发团队)。以下语言特性在这方面特别相关

  • 一个极其强大、静态且安全的类型系统,它允许程序员构建强大的抽象来反映现实世界,并允许编译器在逻辑错误变成错误之前检测到许多逻辑错误。
  • 模块化,编译器直接管理从源代码构建非常大的软件系统。
  • 信息隐藏;该语言将接口与实现分离,并提供对可见性的细粒度控制。
  • 可读性,这有助于程序员审查和验证代码。Ada 优先考虑程序的阅读者而不是编写者,因为程序编写一次但阅读多次。例如,语法禁止所有模棱两可的结构,因此没有意外,遵循编程之道中的最小惊奇原则。(一些 Ada 程序员不愿意谈论通常很神秘的源代码;他们更喜欢程序文本,它更接近英语散文。)
  • 可移植性:语言定义允许编译器仅在少数受控方式上有所不同,否则会非常精确地定义程序的语义;因此,Ada 源代码在编译器和目标硬件平台之间非常可移植。大多数情况下,程序可以在没有任何更改的情况下重新编译。[2]
  • 标准化:标准一直是自 20 世纪 70 年代后期语言设计以来的目标和突出特征。第一个标准于 1980 年发布,距离设计开始仅 3 年。所有 Ada 编译器都支持相同的语言;唯一的方言,SPARK,仅仅是一个带注释的子集,可以使用 Ada 编译器进行编译。

这些特性的结果是卓越的可靠性可重用性可维护性。例如,与用C编写的程序相比,用 Ada 83 编写的程序“内部修复减少了 70%,错误减少了 90%”,并且最初的开发成本降低了一半。[3] Ada 在软件维护方面表现更加出色,软件维护通常占开发总成本的约 80%。借助对面向对象编程的支持,Ada 95 可能会带来更多成本效益,具体取决于对象的使用方式;尽管还没有发表与 Zeigler 可比的严肃研究。

小型编程

[编辑 | 编辑源代码]

除了支持适用于通用编程的良好软件工程实践外,Ada还具有强大的专业功能,支持底层编程,适用于实时、安全关键和嵌入式系统。这些功能包括但不限于机器码插入、地址运算、对内存的低级访问、对数据按位表示的控制、位操作,以及一个定义明确、静态可证明的并发计算模型,称为Ravenscar Profile

其他功能包括限制(可以限制程序中接受哪些语言功能)和有助于审查和认证编译器生成的代码的功能。

一些供应商提供了Ada编译器,并附带了适用于认证的生命攸关应用的最小运行时内核。也可以编写完全不需要运行时内核的Ada程序。

毫不奇怪,Ada广泛应用于航空航天、国防、医疗、铁路和核能行业。

语言参考手册

[编辑 | 编辑源代码]

Ada参考手册 (RM) 是语言的官方定义。如果您遇到问题,其他人无法帮助您,您应该阅读RM(尽管对于非语言律师来说,它通常有点晦涩)。因此,Ada编程中所有完整的(非草稿)页面都包含到RM中相应页面的链接。

本教程涵盖了Ada参考手册 - ISO/IEC 8652:2023 语言和标准库,俗称Ada 2022Ada

您可以在http://www.ada-auth.org/standards/22rm/html/RM-TOC.html浏览完整的参考手册。

有两个配套文档

Ada信息交换中心还提供旧版本的Ada 83、95、2005和2012标准以及配套文档。

RM是Ada用户控制下的集体工作。如果您认为在RM中发现了问题,请将其报告给Ada一致性评估机构(Ada RM解释了如何操作,请参阅http://www.ada-auth.org/standards/22rm/html/RM-0-2.html引言(58/1)ff)。在这个网站上,您还可以看到其他人提出的“Ada问题”列表。

Ada一致性评估测试套件

[编辑 | 编辑源代码]

与其他编程语言不同,Ada编译器会经过官方测试,只有通过测试的编译器才会被接受,用于军事和商业工作。这意味着所有Ada编译器的行为(几乎)都相同,因此您无需学习任何方言。但是,Ada标准允许编译器编写者包含不在标准中的附加功能和库。

Ada编程

[编辑 | 编辑源代码]

在线阅读文档通常非常麻烦。因此,如果您刚刚开始,您也可以下载所有章节PDF版本50% developed  as of Sep 23, 2005并打印出来。

在哪里获取编译器,如何编译源代码,这里都有答案

语言特性

[编辑 | 编辑源代码]

这些章节从更广阔的角度审视问题,以教程的方式向您介绍Ada的主要特性。

计算机编程

[编辑 | 编辑源代码]

以下文章是根据《计算机编程》一书中的文章改编而成的 Ada 版本。这些文章的文本是与语言无关的,但所有示例都是 Ada。

语言参考

[编辑 | 编辑源代码]

在以下章节中,我们将探讨 Ada 的基础知识。这些章节可用于参考特定的关键字、分隔符、运算符等。

预定义语言库

[编辑 | 编辑源代码]

本节是对 Ada 标准库的参考,该库非常广泛且结构良好。它具有以下四个根包

除了标准库之外,编译器通常还附带内置库。本章特别介绍了GNAT库。

外部库

[编辑 | 编辑源代码]

本节是对第三方 Ada 库的参考,这些库不是编译器预定义环境的一部分,但可以免费获得。

外部资源

[编辑 | 编辑源代码]

可打印版本

[编辑 | 编辑源代码]

以下是合集页面。所有合集页面都包含已可用页面的组。您可以使用它们进行打印或快速浏览。请注意,这些页面部分非常长。

教程
显示 HTML (1,839 kb)下载 PDF (2,663 kb,243 页)
关键词
显示 HTML (470 kb)下载 PDF (290 kb,59 页)
运算符
显示 HTML (232 kb)下载 PDF (189 kb,27 页)

源代码

[编辑 | 编辑源代码]

本书的源代码可供下载在线浏览。后者允许“向下钻取”,这意味着您可以沿着链接一直向下跟踪到 Ada 运行时库中的包主体。

参考文献

[编辑 | 编辑源代码]
  1. 参见Category:Book:Ada Programming/所有章节
  2. Gaetan Allaert、Dirk Craeynest、Philippe Waroquiers (2003)。"欧洲空中交通流量管理:将大型应用程序移植到 GNU/Linux"2003 年 ACM SIGAda 国际 Ada 会议论文集。SIGAda'03。第 29-37 页。doi:10.1145/958420.958426ISBN 1-58113-476-2. http://www.sigada.org/conf/sigada2003/SIGAda2003-CDROM/SIGAda2003-Proceedings/p29-allaert.pdf. 检索于 2009 年 1 月 2 日. Eurocontrol 的关于可移植性的论文 (PDF,160 kB)。

  3. Stephen F. Zeigler (1995-03-30). "比较 C 和 Ada 的开发成本". 检索于 2009-01-02. 我们的数据表明,Ada 为我们节省了数百万美元的开发成本。 {{cite journal}}: Cite journal requires |journal= (帮助)

进一步阅读

[编辑 | 编辑源代码]

Ada 2005 教材

[编辑 | 编辑源代码]

Ada 2012 教材

[编辑 | 编辑源代码]

Ada 2022 教材

[编辑 | 编辑源代码]

手册和指南

[编辑 | 编辑源代码]

高完整性软件

[编辑 | 编辑源代码]
[编辑 | 编辑源代码]

作者和贡献者

[编辑 | 编辑源代码]

这本维基教科书由以下人员撰写

如果您也希望贡献,请阅读贡献 并加入我们位于贡献者休息室

华夏公益教科书