Ada 编程
Ada 编程是 Wikibooks 上的一本特色书籍,因为它包含大量内容,格式良好,并且 Wikibooks 社区已决定在首页或其他地方推荐它。请继续改进它,并感谢您迄今为止的辛勤工作!您可以编辑其广告模板。 |
欢迎来到 Wikibooks 上的Ada 编程教程。这是第一个涵盖Ada 教程,涵盖Ada 2005、2012和2022标准。如果您是初学者,您将学习最新的标准 - 如果您是经验丰富的 Ada 用户,您可以了解新功能。
”。到目前为止,本书已有 600 多页,这使得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 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 2005 新特性
- Ada 2012 新特性
- Ada 2022 新特性
- 容器
- 与其他语言的接口
- 编码规范
- 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 运行时库中的包主体。
- ↑ 参见Category:Book:Ada Programming或/所有章节
- ↑ Gaetan Allaert、Dirk Craeynest、Philippe Waroquiers (2003)。"欧洲空中交通流量管理:将大型应用程序移植到 GNU/Linux"。 2003 年 ACM SIGAda 国际 Ada 会议论文集。SIGAda'03。第 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. 检索于 2009 年 1 月 2 日.Eurocontrol 的关于可移植性的论文 (PDF,160 kB)。
- ↑ Stephen F. Zeigler (1995-03-30). "比较 C 和 Ada 的开发成本". 检索于 2009-01-02.
我们的数据表明,Ada 为我们节省了数百万美元的开发成本。
{{cite journal}}
: Cite journal requires|journal=
(帮助)
- John Barnes (2006). Ada 2005 编程. Addison Wesley. ISBN 0-321-34078-7.
- Mordechai Ben-Ari (2009). 软件工程师的 Ada(Ada 2005 第二版). Springer. ISBN 978-1-84882-313-6.
- Alan Burns, Andy Wellings (2007). Ada 并发和实时编程. Cambridge University Press. ISBN 978-0-521-86697-2.
- Nell Dale, John W. McCormick (2007). Ada 加数据结构:面向对象方法 (第 2 版). Jones and Bartlett. ISBN 0-7637-3794-1.
- John W. McCormick, Frank Singhoff, Jérôme Hugues (2011). 使用 Ada 构建并行、嵌入式和实时应用程序. Cambridge University Press. ISBN 978-0-521-19716-8.
{{cite book}}
: CS1 maint: multiple names: authors list (链接)
- John Barnes (2014). Ada 2012 编程. Cambridge University Press. ISBN 978-1-107-42481-4.
- Andrew T.Shvets (2020). Ada 编程入门:从新手到专业人士. Apress Media LLC,Springer Nature 子公司. ISBN 978-1-4842-5427-1.
- John Barnes (2022). Ada 2012 编程以及 Ada 2022 预览. Cambridge University Press. ISBN 9781009181341
- John Barnes (2024) [计划中]. Ada 2022 编程. Cambridge University Press. ISBN 9781009564779
- Ada 质量与风格指南:专业程序员指南(维基教科书)
- Ada 2005 理由,作者 John Barnes (2007)
- Ada 2005 参考手册 (2007)
- Ada 参考卡片(PDF 格式)
- ISO/IEC TR 15942:2000,在高完整性系统中使用 Ada 编程语言的指南. ISO 免费可用标准 [1]
- ISO/IEC TR 24718:2005,在高完整性系统中使用 Ada Ravenscar 配置文件的指南. ISO 免费可用标准 [2]
- John Barnes (2003). 高完整性软件:SPARK 方法的安全与保障. Addison-Wesley. ISBN 0-321-13616-0.
- Ada 信息中心 — 新闻和资源
- comp.lang.ada (网络存档, Google 群组) — 国际 Usenet 新闻组
- ada-lang.io — 社区站点和论坛
- 期刊
- 国际会议/研讨会
- 本地会议
- learn.adacore.com
- Linux Ada 编程大型在线书籍
- Ada 精华
- Ada 实战
- Ada 95 入门
- 网络学习 Ada
- Ada 速成
- Ada 95:面向对象编程的技巧 — 普伦蒂斯·霍尔最初出版的免费教科书
- 在线 Ada 书籍
这本维基教科书由以下人员撰写
- Martin Krischik (贡献)
- Manuel Gómez (贡献)
- Santiago Urueña (贡献)
- C.K.W. Grein (贡献, 更多 和 更多贡献)
- Bill Findlay (贡献)
- B. Seidel (贡献)
- Simon Wright (贡献)
- Allen Lew (贡献)
- John Oleszkiewicz (贡献)
- Nicolas Kaiser (贡献)
- Larry Luther (贡献)
- Georg Bauhaus (贡献)
- Samuel Tardieu (贡献)
- Ludovic Brenta (贡献)
- Mateus de Lima Oliveira (贡献)
- Ed Falis
- Pascal Obry
- Bent Bracke (贡献)