この規格 プレビューページの目次
※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。
3 用語と定義
このドキュメントの目的のために、ISO/IEC 2382, ISO/IEC 8652, ISO/IEC TR 24772-1 および以下に記載されている用語と定義が適用されます。
ISO と IEC は、次のアドレスで標準化に使用する用語データベースを維持しています。
3.1
異常な表現
不完全であるか、オブジェクトのサブタイプの有効な値を表していないオブジェクトの表現
3.2
オブジェクトへのアクセス
オブジェクトへのポインタ
3.3
サブプログラムへのアクセス
サブプログラム (関数またはプロシージャ) へのポインタ
3.4
アクセスタイプ
オブジェクトまたはサブプログラムを指定する (ポイントする) オブジェクトの型
注記 1:これは、他の言語では ポインタ (3.38) 型と呼ばれることが多い。
3.5
アクセス値
nullであるか、別のオブジェクトまたはサブプログラムを指定する アクセスタイプ(3.4) の値
3.6
アロケーター
ヒープまたは ストレージプールからストレージを割り当てる構造 (3.45)
3.7
アスペクト指定
サブプログラム、タイプ、およびオブジェクトの動作に関するアサーション、およびさまざまな種類のエンティティの操作および表現 属性 (3.9) を指定するために使用されるメカニズム。
3.8
アトミック
オブジェクトへのすべてのアクセスが、ローカルまたはレジスタ コピーの部分的な繰り返し操作ではなく、メモリ内のエンティティへの分割不可能なアクセスであることを保証するオブジェクトの特性。
3.9
属性
要求された属性に対応する値を返すために特別な構文で照会できる宣言の特性
3.10
ビット順
High_Order_FirstorLow_Order_Firstのいずれかである 実装定義 (3.32) の値。これにより、単一のメモリ ユニット内のメモリでビットが表現される方法の指定またはクエリが可能になります。
3.11
有界誤差
実行前または実行中に検出する必要はないが、検出されない場合、起こり得る影響の範囲内に収まるエラー
3.12
ケースステートメント
選択式の値に応じて複数の実行パスを提供するが、代替シーケンスの 1 つだけが選択されているステートメント
注記1選択式は,case 文又は case 式 (3.13) の一部であり,case 文の実行又は case 式の評価においてどの選択が取られるかを決定する式であると理解される。 離散型 (3.19) です。
3.13
ケース式
選択式の値に依存する複数の実行パスを提供するが、評価される代替依存式の 1 つだけを持つ式
注記1選択式は, case文(3.12) 又はcase式の一部であり,case文の実行又はcase式の評価においてどの選択が取られるかを決定する式であると理解される。 離散型 (3.19) です。
3.14
ケースの選択
case ステートメント (3.12) or case 式 (3.13) で定義された代替であり、case ステートメントまたは case 式の選択式の型と同じ型である必要があり、それによって、selecting のすべての可能な値表現をカバーする必要があります
注記 1選択式は,case 文又は case 式の一部であり,case 文の実行又は case 式の評価においてどの選択が取られるかを決定する式であると理解される。 離散型 (3.19) です。
3.15
構成プラグマ
パーティション (3.37) 全体またはシステム全体のオプションを選択するために使用され、コンパイルに表示されるすべてのコンパイル単位または同じ環境にコンパイルされる将来のすべてのコンパイル単位に適用されるコンパイラへの指令
注記 1:コンパイル単位は、コンパイラに送信できる最小の Ada 構文構造であると理解され、通常は単一のコンパイル ファイルに保持されます。
3.16
制御型
宣言者が型のオブジェクトの初期化、割り当て、およびファイナライズを厳密に制御できる Ada の特殊な型である、言語定義の型 controls または limited_controller から派生した型
3.17
デッドストア
後続の命令で使用されない変数への代入
3.18
デフォルト式
実際のオブジェクトが提供されない場合に、正式オブジェクトを初期化するために使用される正式オブジェクト型の式
3.19
ディスクリートタイプ
整数型または 列挙型 (3.23)
3.20
判別式
オブジェクトを構成するために型の各オブジェクトの精緻化で使用される複合型のパラメータ
3.21
エンディアン
バイト順
3.22
列挙表現句
列挙リテラルの内部コードを指定するために使用される句
3.23
列挙型
値の列挙によって定義される 離散型 (3.19) 。 識別子 (3.31) または文字リテラル (文字型およびブール型を含む) によって名前が付けられます。
3.24
誤った実行
言語に制限されていないが、実行前または実行中に実装によって検出される必要のないエラーから生じる実行の予測不可能な結果
3.25
例外
例外的な状況を検出し、例外的な状況から回復するための専用の処理を開始するメカニズム
注記 1:例外は、ユーザー コードによって明示的に発生するか、言語定義のチェックによって暗黙的に発生します。
3.26
拡張名
囲んでいるスコープの名前を名前の前に付けることによって、他の同一の名前とのあいまいさをなくした名前
注記 1例えば,パッケージ内のエンティティー E の名前 (または他の名前付きの囲みエンティティー) P は,単純な名前 E の代わりに代替名 PE を使用することによって拡張または明確化されます。
3.27
定点式
浮動小数点型の相対精度ではなく、固定精度で実行される算術演算を提供する、指定されたエラー バウンド (型の「デルタ」と呼ばれる) を持つ実数値型
3.28
ジェネリック・フォーマル・サブプログラム
サブプログラムまたは演算子を指定するために使用される汎用パッケージへのパラメータ
3.29
隠蔽
スコープの特定の部分内で、宣言を直接の可視性またはすべての可視性から隠すことができるプロセス
3.30
同形異義語
同じ名前を持ち、言語の規則に従って互いにオーバーロードしないような 2 つの宣言のプロパティ
3.31
識別子
名前の最も単純な形式
3.32
実装定義
実装が可能な効果のセット内の任意の効果を実装することを選択できる、構造の可能な効果のセットによって定義される
3.33
モジュラータイプ
範囲 0 の値を持つ整数型。モジュラス – 1 算術演算、ビット単位の「and」および「or」演算、およびパッケージ インターフェイスで定義されている場合は、算術および論理シフト演算のラップアラウンド セマンティクスを使用
3.34
廃止された機能
廃止または非推奨であると宣言され、ISO/IEC 8652:2012, 付属書 J に文書化されている言語機能
3.35
運用属性と表現属性
適用可能な 属性 (3.9) を照会することによって取得され、場合によってはユーザーによって指定される、実装に依存する特定の特性の値
3.36
オーバーライド インジケータ
操作が同じ名前の祖先操作をオーバーライドするかどうかの意図を指定し、操作が祖先操作をオーバーライドする (またはオーバーライドしない) ことを確認するためにコンパイラーによって使用されるインジケーター
3.37
パーティション
ライブラリユニットのセットで構成されるプログラムの一部で、各パーティションが別々のアドレス空間で実行され、場合によっては別々のコンピュータ上で実行され、他のパーティションと同時に実行して通信することができます
3.38
ポインタ
アクセスオブジェクトまたは アクセス値 (3.5)
3.39
プラグマ
コンパイラへの指令
3.40
範囲チェック
型変換のオペランドで行われるチェックなど、操作の結果が特定の型またはサブタイプの許容値の範囲内に含まれていることを確認する実行時チェック
3.41
レコード表現節
レコード内のコンポーネントのレイアウト、つまり順序、位置、およびサイズを指定するメカニズム
3.42
スカラー型
数値型、ブール型、列挙型、文字型、 アクセス型のいずれか (3.4)
3.43
静的表現
コンパイラによって正確な精度で計算される、静的に既知のオペランドを持つ式
3.44
保管場所属性
レコードのコンポーネントについて、レコード内のコンポーネントの位置とサイズを指定する整数 属性 (3.9)
注記 1:格納場所の属性は、 Position 、 First_Bit 、およびLast_Bitです。
3.45
ストレージプール
単一の アクセス タイプ (3.4) のすべてのオブジェクトが割り当てられる Ada プログラム内の名前付きの場所
3.46
ストレージ サブプール
サブプール・ハンドルによって識別されるストレージ・プールの個別に再利用可能なサブディビジョン。
3.47
サブタイプ宣言
プログラマーが、既存の型またはサブタイプの制限された値のサブセットを定義する名前付きエンティティを宣言できるようにする構成体。通常は、より小さな値の範囲を指定するなどの制約を課すことによって行われます。
3.48
タスク
同じプログラムの他のタスクと相互作用するポイント間で独立して同時に進行する制御の別個のスレッド
3.49
未使用の変数
プログラムで宣言されているが、読み取りも書き込みもされていない変数
3.50
揮発性
オブジェクトへの更新が常にすべての タスク (3.48) によって同じ順序で見られることを保証するオブジェクトの特性。
注記 1:すべての アトミック (3.8) オブジェクトは揮発性です。
参考文献
| [1] | ISO 10241(全部)、用語入力基準 |
| [3] | ISO/IEC TR 10000-1, 情報技術 — 国際標準プロファイルのフレームワークと分類 — 1: 一般原則と文書化の枠組み |
| [4] | ISO/IEC 15291:1999, 情報技術 — プログラミング言語 — Ada Semantic Interface Specification (ASIS) |
| [5] | ISO/IEC 1540, 情報技術 — セキュリティ技術 — IT セキュリティの評価基準 |
| [6] | ISO/IEC TR 15942:2000, 情報技術 - プログラミング言語 - 高信頼性システムにおける Ada プログラミング言語の使用ガイド |
| [7] | ISO/IEC TR 24718:2005, 情報技術 — プログラミング言語 — 高整合性システムでの Ada Ravenscar プロファイルの使用に関するガイド |
| [8] | ISO/IEC/IEEE 60559:2011, 情報技術 - マイクロプロセッサ システム - 浮動小数点演算 (3 部) |
| [9] | ISO 80000-2:2019, 数量および単位 — 2: 数学 |
| [10] | IEC 61508, Part 1 ~ 7, 機能安全: 安全関連システム。 1998. ( Part 3部はソフトウェア関係) |
| [11] | AQSG, Ada 品質およびスタイル ガイド、プロフェッショナル プログラマー向けガイドライン。入手先: https://en.wikibooks.org/wiki/Ada_Style_Guide |
| [12] | Barnes John, High Integrity Software — the SPARK Approach to Safety and Security.アディソン・ウェズリー。 2002年 |
| [13] | Barnes John, Lecture Notes on Computer Science 8338, Ada 2012 Rationale: The Language — The Standard Libraries , Springer, 2013 |
| [14] | Bhansali PV, セーフティ クリティカルなソフトウェアの安全なサブセットを特定するための体系的なアプローチ、 ACM SIGSOFT ソフトウェア エンジニアリング ノート、v.28 n.4, 2003 年 7 月 |
| [15] | Christy Steve, CVE の脆弱性タイプ分布、V1.0, 2006/10/04 |
| [16] | CWE, The Common Weakness Enumeration (CWE) Initiative, MITRE Corporation http://cwe.mitre.org/ |
| [17] | Einarsson Bo, ed. Accuracy and Reliability in Scientific Computing 、SIAM, 2005 年 7 月 https://www.nsc.liu.se/wg25/book |
| [18] | レポート GAO パトリオット ミサイル防衛: ソフトウェアの問題により、サウジアラビアのダーランでシステム障害が発生、B-247094, 1992 年 2 月 4 日、 http: //archive.gao.gov/t2pbat6/145960.pdf |
| [19] | Ghassan A, Alkadi I OO 設計を再設計するための改訂された DIT メトリックの適用。オブジェクト技術ジャーナル, 127-134, 2003 |
| [20] | Goldberg D.、 What Every Computer Scientist Should Know About Floating-Point Arithmetic 、ACM Computing Surveys, vol 23, issue , ISSN 0360-0300, pp 5-48 |
| [21] | Holzmann Garard J.、Computers, vo 39, no. 6, pp 95-97, 2006 年 6 月, The Power of 10: Rules for Developing Safety-Critical Code |
| [22] | ライオンズ JL, ARIANE 5 フライト 501 失敗レポート。フランス、パリ: 欧州宇宙機関 (ESA) & 国立宇宙研究センター (CNES) 調査委員会、1996 年 7 月 |
| [23] | Lundqvist K.、Asplund L.、「Ravenscar のランタイム カーネルの形式モデル」、リアルタイム コンピューティング システムおよびアプリケーションに関する第 6 回国際会議 — RTCSA 1999 |
| [24] | RTCA SC167 DO178-B/EUROCAE ED-12B, 空中システムおよび機器認証におけるソフトウェアの考慮事項。米国では Requirements and Technical Concepts for Aviation によって発行され、ヨーロッパでは European Organization for Civil Aviation Electronics によって発行されます。 1992年12月 |
| [25] | Sebesta Robert W.、プログラミング言語の概念、第 8 版、ISBN-13: 978-0-321-49362-0, ISBN-10: 0-321-49362-1, ピアソン教育、ボストン、マサチューセッツ州、2008 年 |
| [26] | Skeel R.、ラウンドオフ エラー パトリオット ミサイルを無効にします。 SIAM ニュース、第 25 巻、第 4 号、1992 年 7 月、11 ページ、 https://www-users.math.umn.edu/~arnold/disasters/Patriot-dharan-skeel-siam.pdf |
| [27] | Seacord R. CERT C セキュア コーディング標準。マサチューセッツ州ボストン: Addison-Westley, 2008 |
| [28] | Subramanian S, Tsai WT, Rayadurgam S, (1998).セーフティ クリティカル システムにおける設計制約違反の検出。高保証システム工学に関する第 3 回 IEEE 国際シンポジウム、109-116 |
3 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO/IEC 2382, ISO/IEC 8652, ISO/IEC TR 24772-1 and the following apply.
ISO and IEC maintain terminological databases for use in standardization at the following addresses:
3.1
abnormal representation
representation of an object that is incomplete or that does not represent any valid value of the object’s subtype
3.2
access-to-object
pointer to an object
3.3
access-to-subprogram
pointer to a subprogram (function or procedure)
3.4
access type
type for objects that designate (point to) objects or subprograms
Note 1 to entry: This is often called a pointer (3.38) type in other languages.
3.5
access value
value of an access type (3.4) that is either null or designates another object or subprogram
3.6
allocator
construct that allocates storage from the heap or from a storage pool (3.45)
3.7
aspect specification
mechanism used to specify assertions about the behaviour of subprograms, types and objects as well as operational and representational attributes (3.9) of various kinds of entities
3.8
atomic
characteristic of an object that guarantees that every access to an object is an indivisible access to the entity in memory instead of possibly partial, repeated manipulation of a local or register copy
3.9
attribute
characteristic of a declaration that can be queried by special syntax to return a value corresponding to the requested attribute
3.10
bit ordering
implementation defined (3.32) value that is either High_Order_FirstorLow_Order_First that permits the specification or query of the way that bits are represented in memory within a single memory unit
3.11
bounded error
error that does not need to be detected either prior to or during run time, but if not detected falls within a bounded range of possible effects
3.12
case statement
statement that provides multiple paths of execution dependent on the value of the selecting expression, but which have only one of the alternative sequences selected
Note 1 to entry: A selecting expression is understood to be an expression that is part of a case statement or case expression (3.13) and that determines which choice is taken in executing the case statement or evaluating the case expression; it is of discrete type (3.19) .
3.13
case expression
expression that provides multiple paths of execution dependent on the value of the selecting expression, but which have only one of the alternative dependent expressions evaluated
Note 1 to entry: A selecting expression is understood to be an expression that is part of a case statement (3.12) or case expression and that determines which choice is taken in executing the case statement or evaluating the case expression; it is of discrete type (3.19) .
3.14
case choice
alternative defined in the case statement (3.12) or case expression (3.13) which are required to be of the same type as the type of the selecting expression in the case statement or case expression, and by which all possible values of the selecting expression are required to be covered
Note 1 to entry: A selecting expression is understood to be an expression that is part of a case statement or case expression and that determines which choice is taken in executing the case statement or evaluating the case expression; it is of discrete type (3.19) .
3.15
configuration pragma
directive to the compiler that is used to select partition (3.37) -wide or system-wide options and that applies to all compilation units appearing in the compilation or all future compilation units compiled into the same environment
Note 1 to entry: A compilation unit is understood to be the smallest Ada syntactic construct that can be submitted to the compiler, and that is usually held in a single compilation file.
3.16
controlled type
type descended from the language-defined type controlled or limited_controlled which is a specialized type in Ada where the declarer can tightly control the initialization, assignment, and finalization of objects of the type
3.17
dead store
assignment to a variable that is not used in subsequent instructions
3.18
default expression
expression of the formal object type that is used to initialize the formal object if an actual object is not provided
3.19
discrete type
integer type or enumeration type (3.23)
3.20
discriminant
parameter for a composite type that is used at elaboration of each object of the type to configure the object
3.21
endianness
byte ordering
3.22
enumeration representation clause
clause used to specify the internal codes for enumeration literals
3.23
enumeration type
discrete type (3.19) defined by an enumeration of its values, which are named by identifiers (3.31) or character literals, including the types character and boolean
3.24
erroneous execution
unpredictable result of an execution arising from an error that is not bounded by the language, but that does not need to be detected by the implementation either prior to or during run time
3.25
exception
mechanism to detect an exceptional situation and to initiate processing dedicated to recover from the exceptional situation
Note 1 to entry: Exceptions are raised explicitly by user code or implicitly by language-defined checks.
3.26
expanded name
name that is disambiguated from other identical names by prepending the name with the name of the enclosing scope
Note 1 to entry: For example, the name of an entity E within a package (or any other named enclosing entity) P is expanded or disambiguated by using the alternate name P.E instead of the simple name E.
3.27
fixed-point type
real-valued type with a specified error bound (called the"delta" of the type) that provide arithmetic operations carried out with fixed precision rather than the relative precision of floating-point types
3.28
generic formal subprogram
parameter to a generic package used to specify a subprogram or operator
3.29
hiding
process where a declaration can be hidden, either from direct visibility, or from all visibility, within certain parts of its scope
3.30
homograph
property of two declarations such that they have the same name, and do not overload each other according to the rules of the language
3.31
identifier
simplest form of a name
3.32
implementation defined
defined by a set of possible effects of a construct where the implementation may choose to implement any effect in the set of possible effects
3.33
modular type
integer type with values in the range 0.. modulus – 1 with wrap-around semantics for arithmetic operations, bit-wise"and" and"or" operations, and when defined in package Interfaces, arithmetic and logical shift operations
3.34
obsolescent feature
language feature that has been declared to be obsolescent or deprecated and documented in ISO/IEC 8652:2012, Annex J
3.35
operational and representation attribute
value of certain implementation-dependent characteristics obtained by querying the applicable attributes (3.9) and possibly specified by the user
3.36
overriding indicator
indicator that specifies the intent that an operation does or does not override ancestor operations by the same name, and used by the compiler to verify that the operation does (or does not) override an ancestor operation
3.37
partition
part of a program that consists of a set of library units such that each partition executes in a separate address space, possibly on a separate computer, and can execute concurrently with and communicate with other partitions
3.38
pointer
access object or access value (3.5)
3.39
pragma
directive to the compiler
3.40
range check
run-time check that ensures the result of an operation is contained within the range of allowable values for a given type or subtype, such as the check done on the operand of a type conversion
3.41
record representation clause
mechanism to specify the layout of components within records, that is, their order, position, and size
3.42
scalar type
any one of numeric, Boolean, enumeration, character and access types (3.4)
3.43
static expression
expression with statically known operands that are computed with exact precision by the compiler
3.44
storage place attribute
integer attribute (3.9) that specify, for a component of a record, the component position and size within the record
Note 1 to entry: The storage place attributes are: Position, First_Bit and Last_Bit.
3.45
storage pool
named location in an Ada program where all objects of a single access type (3.4) are allocated
3.46
storage subpool
separately reclaimable subdivision of a storage pool that is identified by a subpool handle
3.47
subtype declaration
construct that allows programmers to declare a named entity that defines a possibly restricted subset of values of an existing type or subtype, typically by imposing a constraint, such as specifying a smaller range of values
3.48
task
separate thread of control that proceeds independently and concurrently between the points where it interacts with other tasks from the same program
3.49
unused variable
variable that is declared but neither read nor written to in the program
3.50
volatile
characteristic of an object that guarantees that updates to the object are always seen in the same order by all tasks (3.48)
Note 1 to entry: All atomic (3.8) objects are volatile.
Bibliography
| [1] | ISO 10241 (all parts), Terminological entry standards |
| [3] | ISO/IEC TR 10000-1, Information technology — Framework and taxonomy of International Standardized Profiles — 1: General principles and documentation framework |
| [4] | ISO/IEC 15291:1999, Information technology — Programming languages — Ada Semantic Interface Specification (ASIS) |
| [5] | ISO/IEC 15408 (all parts), Information technology — Security techniques — Evaluation criteria for IT security |
| [6] | ISO/IEC TR 15942:2000, Information technology — Programming languages — Guide for the use of the Ada programming language in high integrity systems |
| [7] | ISO/IEC TR 24718:2005, Information technology — Programming languages — Guide for the use of the Ada Ravenscar Profile in high integrity systems |
| [8] | ISO/IEC/IEEE 60559:2011, Information technology — Microprocessor Systems — Floating-Point arithmetic (3 parts) |
| [9] | ISO 80000-2:2019, Quantities and units — 2: Mathematics |
| [10] | IEC 61508, Parts 1-7, Functional safety: safety-related systems. 1998. (Part 3 is concerned with software) |
| [11] | AQSG, Ada Quality and Style Guide, Guidelines for Professional Programmers. Available from: https://en.wikibooks.org/wiki/Ada_Style_Guide |
| [12] | Barnes John, High Integrity Software — the SPARK Approach to Safety and Security. Addison-Wesley. 2002 |
| [13] | Barnes John, Lecture Notes on Computer Science 8338, Ada 2012 Rationale: The Language — The Standard Libraries, Springer, 2013 |
| [14] | Bhansali P.V., A systematic approach to identifying a safe subset for safety-critical software, ACM SIGSOFT Software Engineering Notes, v.28 n.4, July 2003 |
| [15] | Christy Steve, Vulnerability Type Distributions in CVE, V1.0, 2006/10/04 |
| [16] | CWE, The Common Weakness Enumeration (CWE) Initiative, MITRE Corporation http://cwe.mitre.org/ |
| [17] | Einarsson Bo, ed. Accuracy and Reliability in Scientific Computing, SIAM, July 2005 https://www.nsc.liu.se/wg25/book |
| [18] | Report G.A.O. Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia, B-247094, Feb. 4, 1992, http://archive.gao.gov/t2pbat6/145960.pdf |
| [19] | Ghassan A., Alkadi I., Application of a Revised DIT Metric to Redesign an OO Design. Journal of Object Technology, 127-134, 2003 |
| [20] | Goldberg D., What Every Computer Scientist Should Know About Floating-Point Arithmetic, ACM Computing Surveys, vol 23, issue 1 (March 1991), ISSN 0360-0300, pp 5-48 |
| [21] | Holzmann Garard J., Computer, vol. 39, no. 6, pp 95-97, Jun., 2006, The Power of 10: Rules for Developing Safety-Critical Code |
| [22] | Lions J. L., ARIANE 5 Flight 501 Failure Report. Paris, France: European Space Agency (ESA) & National Center for Space Study (CNES) Inquiry Board, July 1996 |
| [23] | Lundqvist K., Asplund L., “A Formal Model of a Run-Time Kernel for Ravenscar”, The 6th International Conference on Real-Time Computing Systems and Applications — RTCSA 1999 |
| [24] | RTCA SC167 DO178-B/EUROCAE ED-12B, Software Considerations in Airborne Systems and Equipment Certification. Issued in the USA by the Requirements and Technical Concepts for Aviation) and in Europe by the European Organization for Civil Aviation Electronics. December 1992 |
| [25] | Sebesta Robert W., Concepts of Programming Languages, 8th edition, ISBN-13: 978-0-321-49362-0, ISBN-10: 0-321-49362-1, Pearson Education, Boston, MA, 2008 |
| [26] | Skeel R., Roundoff Error Cripples Patriot Missile. SIAM News, Volume 25, Number 4, July 1992, page 11, https://www-users.math.umn.edu/~arnold/disasters/Patriot-dharan-skeel-siam.pdf |
| [27] | Seacord R., The CERT C Secure Coding Standard. Boston,MA: Addison-Westley, 2008 |
| [28] | Subramanian S., Tsai W.-T., Rayadurgam S., (1998). Design Constraint Violation Detection in Safety-Critical Systems. The 3rd IEEE International Symposium on High-Assurance Systems Engineering, 109–116 |