跳转到内容

Ada 编程/方面

来自维基教科书,开放世界中的开放书籍

Ada. Time-tested, safe and secure.
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 版本中不可用。

未加标记的方面以前是通过编译指示或属性定义子句定义的。这仍然可以,但已弃用。

P – Z

[edit | edit source]

实现定义的方面列表

[edit | edit source]

以下 pragma 不在所有 Ada 编译器中可用,仅在已实现它们的编译器中可用。

目前,只列出了少数编译器的实现定义 pragma。您可以帮助 Wikibooks 添加 其他编译器的特定方面

GNAT
实现定义的方面 来自 AdaCore 和 FSF 的 GNAT 编译器。

另请参阅

[edit | edit source]

维基教科书

[edit | edit source]

Ada 参考手册

[编辑 | 编辑源代码]

参考文献

[编辑 | 编辑源代码]


华夏公益教科书