Ada 程式設計/方面
外觀
< Ada 程式設計
當宣告變數或子程式等實體時,其某些屬性通常由編譯器指定(例如變數的大小或地址、子程式的呼叫約定)。可以查詢的屬性稱為屬性;可以指定的屬性稱為方面。某些方面與屬性相對應,然後具有相同的名稱。方面和屬性在 Ada 參考手冊中定義 附錄 K:語言定義的方面和屬性 [註釋],附錄 L:語言定義的編譯指示 [註釋] 中的編譯指示。
此語言特性是在 Ada 2012 中引入的。
方面是實體的某些屬性,可以根據實體的型別,透過方面規範作為其宣告的一部分或透過單獨的屬性定義子句或編譯指示宣告來指定。
Aspect_Specification ::=
with Aspect_Name [ => Aspect_Definition] {,
Aspect_Name [ => Aspect_Definition] } ;
Attribute_Definition_Clause ::=
for entity_name'attribute_designator use expression;
| for entity_name'attribute_designator use name;
pragma Name (Parameter_List);
如果未指定方面,則取決於方面本身,其值是留給編譯器還是在 Ada RM 中規定。
布林值方面的規範可以省略方面定義,該定義的值為True。
此類屬性的示例是型別的尺寸,即該型別獨立物件的位數;或者子程式將不會從其呼叫返回:aspect No_Return。後者是方面具有布林值的示例。
如果未加標記,則透過方面規範指定方面。
標記為Ada 2012 的方面是 Ada 2012 語言功能,在以前的 Ada 版本中不可用。
標記為Ada 2022 的方面是 Ada 2022 語言功能,在以前的 Ada 版本中不可用。
未加標記的方面以前是透過編譯指示或屬性定義子句定義的。這仍然可以,但已棄用。
- 聚合 (Ada 2022; 方面規範)
- Address (屬性定義子句、方面規範)
- Alignment (屬性定義子句)
- All_Calls_Remote (編譯指示)
- Allows_Exit (Ada 2022; 方面規範)
- 非同步
- 原子
- 原子元件
- 附加處理程式
- Bit_Order (屬性定義子句)
- 編碼 (列舉表示子句)
- Component_Size (屬性定義子句)
- Constant_Indexing (Ada 2012)
- 約定
- CPU (Ada 2012)
- Default_Component_Value (Ada 2012)
- Default_Initial_Condition (Ada 2022; 方面規範)
- Default_Iterator (Ada 2012)
- Default_Storage_Pool (Ada 2012; 編譯指示)
- Default_Value (Ada 2012)
- Dispatching (Ada 2022; 方面規範)
- Dispatching_Domain (Ada 2012)
- Discard_Names (Ada 2012; 方面規範、編譯指示)
- Dynamic_Predicate (Ada 2012)
- Elaborate_Body (編譯指示)
- Exclusive_Functions (Ada 2012)
- 匯出
- 外部名稱
- External_Tag (屬性定義子句)
- Full_Access_Only (Ada 2022; 方面規範)
- Global (Ada 2022; 方面規範)
- Global'Class (Ada 2022; 方面規範)
- Implicit_Dereference (Ada 2012)
- 匯入
- Independent (Ada 2012)
- Independent_Components (Ada 2012)
- 內聯
- Input (屬性定義子句)
- Input'Class (Ada 2012; 屬性定義子句)
- Integer_Literal (Ada 2022; 方面規範)
- 中斷處理程式
- 中斷優先順序
- Iterator_Element (Ada 2012)
- Iterator_View (Ada 2022; 方面規範)
- 佈局 (記錄表示子句)
- 連結名稱
- Machine_Radix (屬性定義子句)
- Max_Entry_Queue_Length (Ada 2022; 方面規範)
- No_Controlled_Parts (Ada 2022; 方面規範)
- No_Return
- Nonblocking (Ada 2022; 方面規範)
- Output (Attribute_Definition_Clause)
- Output'Class (Ada 2012; Attribute_Definition_Clause)
P – Z
[edit | edit source]- Pack
- Parallel_Calls (Ada 2022; Aspect_Specification)
- Parallel_Iterator (Ada 2022; Aspect_Specification)
- Post (Ada 2012)
- Post'Class (Ada 2012)
- Pre (Ada 2012)
- Pre'Class (Ada 2012)
- Predicate_Failure (Ada 2012)
- Preelaborate (Pragma)
- Preelaborable_Initialization (Ada 2022; Aspect_Specification)
- Priority
- Pure (Pragma)
- Put_Image (Ada 2022; Aspect_Specification)
- Read (Attribute_Definition_Clause)
- Read'Class (Ada 2012; Attribute_Definition_Clause)
- Real_Literal (Ada 2022; Aspect_Specification)
- Relative_Deadline (Ada 2022; Aspect_Specification)
- Remote_Call_Interface (Pragma)
- Remote_Types (Pragma)
- Shared_Passive (Pragma)
- Size (Attribute_Definition_Clause)
- Small (Attribute_Definition_Clause)
- Stable_Properties (Ada 2022; Aspect_Specification)
- Stable_Properties'Class (Ada 2022; Aspect_Specification)
- Static (Ada 2022; Aspect_Specification)
- Static_Predicate (Ada 2012)
- Storage_Pool (Attribute_Definition_Clause)
- Storage_Size (Attribute_Definition_Clause)
- Stream_Size (Attribute_Definition_Clause)
- String_Literal (Ada 2022; Aspect_Specification)
- Synchronization (Ada 2012)
- Type_Invariant (Ada 2012)
- Type_Invariant'Class (Ada 2012)
- Unchecked_Union (Ada 2022; Aspect_Specification)
- Use_Formal (Ada 2022; Aspect_Specification)
- Variable_Indexing (Ada 2012)
- Volatile
- Volatile_Components
- Write (Attribute_Definition_Clause)
- Write'Class (Ada 2012; Attribute_Definition_Clause)
- Yield (Ada 2022; Aspect_Specification)
實現定義的方面列表
[edit | edit source]以下 pragma 不在所有 Ada 編譯器中可用,僅在已實現它們的編譯器中可用。
目前,只列出了少數編譯器的實現定義 pragma。您可以幫助 Wikibooks 新增 其他編譯器的特定方面
- Ada_2005 (GNAT)
- Ada_2012 (GNAT)
- Favor_Top_Level (GNAT)
- Inline_Always (GNAT)
- Object_Size (GNAT)
- Persistent_BSS (GNAT)
- Pure_Function (GNAT)
- Remote_Access_Type (GNAT)
- Shared (GNAT)
- Suppress_Debug_Info (GNAT)
- Test_Case (GNAT)
- Universal_Aliasing (GNAT)
- Unmodified (GNAT)
- Unreferenced (GNAT)
- Unreferenced_Objects (GNAT)
- Value_Size (GNAT)
- Warnings (GNAT)
另請參閱
[edit | edit source]華夏公益教科書
[edit | edit source]
