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_designatoruse
expression; |for
entity_name'attribute_designatoruse
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]