跳轉到內容

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]

作者和貢獻者

[編輯 | 編輯原始碼]

本華夏公益教科書由以下人員撰寫

如果您也希望貢獻,請閱讀 貢獻 並加入我們在 貢獻者休息室.

華夏公益教科書