跳轉到內容

Ada 程式設計/Ada 2005

來自 Wikibooks,開放世界中的開放書籍

Ada. Time-tested, safe and secure.
Ada.經久耐用、安全可靠。

這是對Ada 2005主要功能的概述,Ada 2005 是 Ada 標準的版本,於 2007 年 1 月由 ISO 接受(為了與之前的版本 Ada 83Ada 95 區分,Ada 2005 的非正式名稱通常被大家接受)。有關其基本原理和更詳細(且非常技術性)的描述,請參閱 修正案,該修正案是對 Ada 參考手冊的修正,連結到每個 Ada 問題文件(AI)的最新版本。

儘管該標準現已釋出,但並非所有編譯器都能夠處理它。以下 免費軟體 編譯器已經實現了其中許多新增功能:

下載並安裝它們中的任何一個後,請記住在編譯 Ada 2005 程式碼時使用 -gnat05 開關。請注意,在 GNAT GPL 2007 版中,Ada 2005 是預設模式。

語言特性

[編輯 | 編輯原始碼]

字元集

[編輯 | 編輯原始碼]

Ada 2005 不僅支援新的 32 位字元型別——稱為Wide_Wide_Character——而且原始碼本身也可以使用此擴充套件字元集。因此,例如,俄羅斯人和印度人將能夠在識別符號和註釋中使用他們的母語。數學家也會欣喜若狂:整個希臘語和弗拉克圖爾字元集都可以在識別符號中使用。例如,Ada.Numerics 將擴充套件為包含一個新的常量

π : constant := Pi;

這不是一個新想法——GNAT 始終擁有-gnatic編譯器選項來指定字元集 [1]。但是現在這個想法已經成為標準,所以所有 Ada 編譯器都需要支援 Unicode 4.0 用於識別符號——正如新標準要求的那樣。

另請參閱

介面允許以類似於 Java 和 C# 的有限形式實現多重繼承。

您可以在此處找到完整的描述:Ada 程式設計/面向物件

另請參閱

除了 Ada 的安全變體記錄之外,現在還提供了未檢查的 C 樣式聯合。

您可以在此處找到完整的描述:Ada 程式設計/型別/記錄#聯合

另請參閱

With 語句得到了巨大改進。首先,有新的 有限 with,它允許兩個包相互 with。然後有 私有 with,它使包僅在規範的私有部分中可見。

另請參閱

訪問型別

[編輯 | 編輯原始碼]

非空訪問

[編輯 | 編輯原始碼]

訪問型別定義可以指定訪問型別永遠不能為 null。

請參閱 Ada 程式設計/型別/訪問#空排除

另請參閱:AI95-00231-01 訪問常量引數和空排除訪問子型別

匿名訪問

[編輯 | 編輯原始碼]

匿名訪問型別的可能用法已擴充套件。它們幾乎可以在每個型別或物件定義中使用,包括訪問子程式引數。匿名訪問型別也可以指向常量物件。此外,可以將它們宣告為非空。

透過在包 標準 中新增以下操作,可以測試匿名訪問型別的相等性。

   function "=" (Left, Right : universal_access) return Boolean;
   function "/="(Left, Right : universal_access) return Boolean;

請參閱 Ada 程式設計/型別/訪問#匿名訪問

另請參閱

語言庫

[編輯 | 編輯原始碼]

語言庫中的一項重大新增功能是用於容器的泛型包。如果您熟悉 C++ STL,那麼在使用 Ada.Containers 時,您可能會感覺非常熟悉。不過,有一點要注意:Ada 是一種塊結構語言。許多關於如何使用 STL 的想法都利用了語言的這一特性。例如,可以向迭代方案提供區域性子程式。

原始的 Ada 問題文字 AI95-00302-03 容器庫 現已轉換為 A.18 容器 (帶註釋的)

如果您瞭解如何編寫 Ada 程式,並且需要使用向量、列表、集合或對映(表),請檢視上面提到的 AI95-00302-03 AI 文件。 文件中有一個 !示例 部分詳細解釋了容器的使用。 Matthew Heaney 在他針對 AI-302 的參考實現中提供了一些演示程式(Ada.Containers),您可以在 tigris 上找到它們。

Ada 程式設計/容器 中,您會找到一個使用容器的演示。

歷史旁註:C++ STL 借鑑了 David R. Musser 和 Alexander A. Stepanov 的工作。 他們曾在一些泛型程式設計研究中使用 Ada 83。 Stepanov 檔案集 提供了一些出版物。

掃描檔案系統目錄和環境變數

[編輯 | 編輯原始碼]

另請參閱

除了包 Ada.Numerics 的新常量(請參閱上面的 字元集),最重要的新增內容是用於操作向量和矩陣的包。

另請參閱

(關於 Ada 程式設計工具的相關說明:AI-388 包含一個有趣的評估,說明了編譯器編寫者如何被迫持續保持對程式設計支援工具中國際字元的處理不足。 作為 Ada 程式的作者,請注意您的工具提供商或 Ada 顧問可能會建議程式文字僅使用 7 位 ASCII。)

即時和高完整性系統

[編輯 | 編輯原始碼]

另請參閱

Ravenscar 配置

[編輯 | 編輯原始碼]

另請參閱

新的排程策略

[編輯 | 編輯原始碼]

另請參閱

受保護物件動態優先順序

[編輯 | 編輯原始碼]

另請參閱:AI95-00327-01 動態上限優先順序

新增內容概述

[編輯 | 編輯原始碼]

新增關鍵字

[編輯 | 編輯原始碼]

新增 3 個關鍵字(共計 72 個)

新增編譯指示

[編輯 | 編輯原始碼]

新增 11 個編譯指示

新增屬性

[編輯 | 編輯原始碼]

新增 7 個屬性

新增包

[編輯 | 編輯原始碼]

另請參閱

[edit | edit source]

華夏公益教科書

[edit | edit source]

Ada 2005 類別頁面

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

論文和簡報

[edit | edit source]

基本原理

[edit | edit source]
  • Ada 2005 基本原理John Barnes 撰寫
    1. 介紹
    2. 面向物件模型
    3. 訪問型別
    4. 結構和可見性
    5. 任務和即時
    6. 異常、泛型等
    7. 預定義庫
    8. 容器
    9. 結語
參考文獻
索引

可作為單個 列印文件 獲取。

語言要求

[edit | edit source]

Ada 參考手冊

[edit | edit source]

Ada 問題

[edit | edit source]


華夏公益教科書