跳转到内容

Ada 编程

100% developed
来自维基教科书,开放的书籍,开放的世界
(重定向自 Programming:Ada)


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

Ada 编程的当前开发阶段是“75% developed  as of June 8, 2024 (2024 年 6 月 8 日)”。截至目前,这本书有 600 多页,这使得Ada 编程成为最大的编程维基教科书之一。 [1]

但是仍然有改进的空间——帮助我们扩展Ada 编程。即使是初学者也会发现可以参与的领域。

关于 Ada

[edit | edit source]
奥古斯塔·阿达·金,洛夫莱斯伯爵夫人。

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

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

Ada 以 奥古斯塔·阿达·金-诺埃尔,洛夫莱斯伯爵夫人命名。

大型编程

[edit | edit source]

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

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

这些品质带来的结果是卓越的可靠性可重用性可维护性。例如,与用 C 编写的程序相比,用 Ada 83 编写的程序“内部修复减少了 70%,错误减少了 90%”,并且开发成本最初低了一半。 [3] Ada 在软件维护方面更是大放异彩,软件维护通常占开发总成本的 80% 左右。借助对面向对象编程的支持,Ada 95 可能会带来更多成本效益,具体取决于对象的用途;虽然没有发表与齐格勒研究类似的严肃研究。

小型编程

[edit | edit source]

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

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

一些供应商提供 Ada 编译器,以及适合在经过认证的生命攸关应用程序中使用的最小运行时内核。也可以编写不需要任何运行时内核的 Ada 程序。

Ada 被航空航天、国防、医疗、铁路和核工业广泛使用也就不足为奇了。

语言参考手册

[edit | edit source]

Ada 参考手册 (RM) 是官方的语言定义。如果您遇到问题,其他人无法提供帮助,您应该阅读 RM (虽然对于非语言律师来说,它通常有点难以理解)。出于这个原因,所有完整的 (不是草稿) 页面的 Ada 编程 包含指向 RM 中相应页面的链接。

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

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

有两个配套文件

  • 注释参考手册》,是 RM 的扩展版本,面向编译器编写者或希望了解语言细节的其他人员。
  • Ada 2022 概述》,解释了本语言版本的特性。

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% 开发 截至 2005 年 9 月 23 日 并打印出来。

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

语言特性

[编辑 | 编辑源代码]

这些章节着眼于更广泛的画面,以教程的方式向您介绍主要的 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. pp. 29–37. doi:10.1145/958420.958426. ISBN 1-58113-476-2. http://www.sigada.org/conf/sigada2003/SIGAda2003-CDROM/SIGAda2003-Proceedings/p29-allaert.pdf. Retrieved 2009-01-02.  Eurocontrol 关于可移植性的论文 (PDF,160 kB)。
  3. Stephen F. Zeigler (1995-03-30). "Comparing Development Costs of C and Ada". Retrieved 2009-01-02. Our data indicates that Ada has saved us millions of development dollars. {{cite journal}}: Cite journal requires |journal= (help)

进一步阅读

[edit | edit source]

Ada 2005 教科书

[edit | edit source]

Ada 2012 教科书

[edit | edit source]

Ada 2022 教科书

[edit | edit source]

手册和指南

[edit | edit source]

高完整性软件

[edit | edit source]
[edit | edit source]

作者和贡献者

[编辑 | 编辑源代码]

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

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

华夏公益教科书