Ada 程式設計
| Ada 程式設計是 Wikibooks 上的一本特色書籍,因為它包含大量內容,格式良好,並且 Wikibooks 社群已決定在首頁或其他地方推薦它。請繼續改進它,並感謝您迄今為止的辛勤工作!您可以編輯其廣告模板。 |

歡迎來到 Wikibooks 上的Ada 程式設計教程。這是第一個涵蓋Ada 教程,涵蓋Ada 2005、2012和2022標準。如果您是初學者,您將學習最新的標準 - 如果您是經驗豐富的 Ada 使用者,您可以瞭解新功能。
Ada 程式設計的當前開發階段為“”。到目前為止,本書已有 600 多頁,這使得Ada 程式設計成為最大的程式設計維基書籍之一。[1]
但仍然有改進的空間 - 請幫助我們擴充套件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 (貢獻)