軟體工程師手冊/語言詞典/Ada
Ada 是一種 強型別 多正規化 程式語言,適用於 嵌入式系統、裝置驅動程式 和其他形式的 系統程式設計。
Ada 是一種完整的 多正規化 程式語言,實現了以下正規化:併發、分散式、泛型 (模板 超程式設計)、命令式 和 面向物件 (基於類的) 程式設計。
入口點的過程名稱可以自由選擇。
典型的語句以分號結尾。將 b 賦值給 a 使用
a := b ;
-- this is an inline comment. Everything after the -- is a comment.
宣告可以出現在塊的開頭。
將 i 宣告為整數
declareI : Integer ;begin-- programend;
以下是將 i 宣告為整數併為其賦予初始值 0 的兩種方式
declareI : Integer := 0 ;begin-- programend;
過程和函式分別由關鍵字過程 或函式 宣告。有關詳細資訊,請參閱 Ada 程式設計/子程式。
procedureA_Test (A, B:inInteger; C:outInteger)isbeginC := A + B;endA_Test;
functionMinimum (A, B : Integer)returnIntegerisbeginifA <= BthenreturnB;elsereturnA;endif;endMinimum;
類方法是與類記錄在同一範圍內宣告的原始操作(過程和函式)。有關詳細資訊,請參閱 Ada_Programming/面向物件。
範圍由包的使用來宣告,包可能包含三個部分:公共規範(包)、私有規範(私有)和主體(包 主體).
packagePackage_With_BodyistypeBasic_Recordisprivate;procedureSet_A (This :inoutBasic_Record; An_A :inInteger);functionGet_A (This : Basic_Record)returnInteger;privatetypeBasic_RecordisrecordA : Integer;endrecord;endPackage_With_Body;
packagebodyPackage_With_BodyisprocedureSet_A (This :inoutBasic_Record; An_A :inInteger)isbeginThis.A := An_A;endSet_A;functionGet_A (This : Basic_Record)returnIntegerisbeginreturnThis.A;endGet_A;endPackage_With_Body;
有關詳細資訊,請參閱 Ada_Programming/包。
<用文字描述條件語句並展示
ifA < Range_Type'LastthenT_IO.Put (",");elseT_IO.New_Line;endif;
有關詳細資訊,請參閱 Ada_Programming/控制#if-else。
<用英語描述迴圈語句並展示程式碼示例。>
forAinRange_TypeloopI_IO.Put (Item => A, Width => 3, Base => 10);ifA < Range_Type'LastthenT_IO.Put (",");elseT_IO.New_Line;endif;endloop;
有關詳細資訊,請參閱 Ada 程式設計/控制#迴圈。
<描述如何輸出Hello world!,包括帶或不帶回車的換行符。>
withAda.Text_IO;procedureHelloisbeginAda.Text_IO.Put_Line("Hello, world!");endHello;
有關詳細資訊,請參閱 Ada_Programming/庫/Ada.Text_IO。
<描述錯誤處理和恢復。根據需要提供示例。>
有關詳細資訊,請參閱 Ada_Programming/異常。
以下預定義的包現在可以在 Ada 中原生使用(自 Ada 2005 起)
- Ada.Containers.Doubly_Linked_Lists
- Ada.Containers.Hashed_Maps
- Ada.Containers.Hashed_Sets
- Ada.Containers.Ordered_Maps
- Ada.Containers.Ordered_Sets
- Ada.Containers.Vectors
這些是確定版本的 - 每個區域的非確定版本也提供。所有容器都是無界的。
<列出此語言原生提供的演算法或演算法列表的參考。列出如果演算法不是該語言的原生部分,則如何將演算法合併。或者,如果不可用,請說明。>
垃圾收集可以是手動或自動的 - 請參閱您的編譯器手冊。如果提供自動收集,則 可以停用對命名訪問型別的自動收集。pragma Controlled ()
對於手動釋放,包 Ada.Unchecked_Deallocation 用於釋放。
有關詳細資訊,請參閱 Ada 程式設計/型別/訪問。
<描述檔案、庫和部分的典型劃分和排列方式。>
<請包含使從其他語言切換到此語言更容易的提示。>