跳转到内容

Ada 编程/属性

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

Ada. Time-tested, safe and secure.
Ada.经久考验,安全可靠。

当声明变量或子程序等实体时,其某些属性通常由编译器指定(例如变量的大小或地址、子程序的调用约定)。可以查询的属性称为 *属性*;可以指定的属性称为 方面。方面和属性在 Ada 参考手册的附件中定义 附件 K:语言定义的方面和属性 [带注释的].

语言摘要属性

[编辑 | 编辑源代码]

*属性* 的概念对于 Ada 来说非常独特。属性允许您获取 - 并且有时设置 - 关于对象或其他语言实体(如类型)的信息。一个很好的例子是 Size 属性。它描述了对象或类型的大小(以位为单位)。

A : Natural := Integer'Size; -- A is now 32 (with the GNAT compiler for the x86 architecture)

但是,与来自 C/C++sizeof 运算符不同,Size 属性也可以设置。

type Byte is range -128 .. 127;  -- The range fits into 8 bits but the
                                 -- compiler is still free to choose.
for  Byte'Size use 8;            -- Now we force the compiler to use 8 bits.

当然,并非所有属性都可以设置。属性以一个 '(撇号)开头,后跟属性名称。编译器通过上下文确定撇号是属性的开始,还是字符文字或量化表达式的开始。

A : Character := Character'Val (32);     -- A is now a space
B : Character := ' ';                    -- B is also a space
S : String    := Character'(')')'Image;  -- an especially nice parsing exercise

语言定义属性列表

[编辑 | 编辑源代码]
Ada 2005
这是一个新的 Ada 2005 属性。
Ada 2012
这是一个新的 Ada 2012 属性。
Ada 2022
这是一个新的 Ada 2022 属性。
过时
这是一个已弃用的属性,不应在新的代码中使用。

实现定义属性列表

[编辑 | 编辑源代码]

以下属性并非所有 Ada 编译器都提供,仅在实现过这些属性的编译器中提供。

目前,只列出了几个编译器的实现定义属性。您可以帮助 Wikibooks 添加 其他编译器的特定属性。

GNAT
实现定义属性 来自 AdaCore/FSF 的 GNAT 编译器。
HP Ada
HP Ada 编译器(以前称为“DEC Ada”)的实现定义属性。
ICC
Irvine ICC 编译器的实现定义属性[1]
PowerAda
实现定义属性 来自 OC Systems 的 PowerAda
SPARCompiler
实现定义属性 来自 Sun 的 SPARCompiler Ada。

O – T

[edit | edit source]

U – Z

[edit | edit source]

另请参阅

[edit | edit source]

维基教科书

[edit | edit source]

Ada 语言参考手册

[edit | edit source]

Ada 83

[edit | edit source]

Ada 95

[edit | edit source]

Ada 2005

[edit | edit source]

Ada 2012

[edit | edit source]

Ada 2022

[edit | edit source]

参考文献

[edit | edit source]
  1. "4.2 ICC-Defined Attributes", ICC Ada Implementation Reference — ICC Ada Version 8.2.5 for i960MC Targets, document version 2.11.4 [1]
华夏公益教科书