知識マップ: Ada 2022 の新しい機能 ── GNAT で動くものと、まだ書けない並列構文
記事「Ada 2022 の新しい機能 ── GNAT で動くものと、まだ書けない並列構文」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
Ada 2022では式の中で定数を置ける宣言式と、一部の成分だけを変えた値を作る差分集成体が加わり、どちらも事前条件・事後条件の中で使える。どの型の'ImageもPut_Imageを通して定義され、Big_IntegersはPut_Imageとユーザー定義リテラルを使う。簡約式は反復子のフィルタで要素を選べる。JorvikプロファイルはRavenscarプロファイルの制限の一部を外したもので、GNATではpragma Profileで有効にできる。並列ブロック文と並列ループは衝突検査の方針でデータ競合をコンパイル時に防ぐ規則を持つが、GNAT 13.3と15.3では構文として受け付けられなかった。
flowchart LR
accTitle: Ada 2022の新しい機能の知識マップ
accDescr: Ada 2022で加わった宣言式・差分集成体・Put_Image・簡約式・Big_Integers・Jorvikプロファイル・並列ブロックと並列ループが、契約・Ravenscarプロファイル・データ競合・GNATとどう関係するかを示す図。
ada_declare_expression["宣言式(declare expression)"]
ada_delta_aggregate["差分集成体(delta aggregate)"]
ada_put_image["Put_Image"]
jorvik_profile["Jorvikプロファイル"]
ada_parallel_block_statement["並列ブロック文(parallel block statement)"]
ada_design_by_contract["契約による設計(Pre/Post条件)"]
ada_big_integers["Big_Integers"]
ada_user_defined_literals["ユーザー定義リテラル(user-defined literals)"]
ada_reduction_expression["簡約式(reduction expression)"]
ada_iterator_filter["反復子のフィルタ(iterator filter)"]
ravenscar_profile["Ravenscarプロファイル"]
gnat["GNAT"]
ada_conflict_check_policy["Conflict_Check_Policy(衝突検査の方針)"]
ada_parallel_loop["並列ループ(parallel loop)"]
data_race["データ競合(data race)"]
ada_design_by_contract -->|"利用する"| ada_declare_expression
ada_design_by_contract -->|"利用する"| ada_delta_aggregate
ada_big_integers -->|"利用する"| ada_put_image
ada_big_integers -->|"利用する"| ada_user_defined_literals
ada_reduction_expression -.->|"利用する"| ada_iterator_filter
jorvik_profile -->|"内容を継承する"| ravenscar_profile
jorvik_profile -.->|"で構成できる"| gnat
ada_parallel_block_statement -->|"で確認できる"| ada_conflict_check_policy
ada_parallel_loop -->|"で確認できる"| ada_conflict_check_policy
ada_conflict_check_policy -->|"防止する"| data_race
ada_parallel_block_statement -.->|"両立しない"| gnat
ada_parallel_loop -.->|"両立しない"| gnat
概念間の関係(全12件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- 契約による設計(Pre/Post条件)は宣言式(declare expression)を利用します。
- 契約による設計(Pre/Post条件)は差分集成体(delta aggregate)を利用します。
- Big_IntegersはPut_Imageを利用します。
- Big_Integersはユーザー定義リテラル(user-defined literals)を利用します。
- 簡約式(reduction expression)は反復子のフィルタ(iterator filter)を利用します。
- JorvikプロファイルはRavenscarプロファイルの内容を継承して表示します。
- JorvikプロファイルはGNATで構成できます。
- 並列ブロック文(parallel block statement)はConflict_Check_Policy(衝突検査の方針)で確認できます。
- 並列ループ(parallel loop)はConflict_Check_Policy(衝突検査の方針)で確認できます。
- Conflict_Check_Policy(衝突検査の方針)はデータ競合(data race)を防ぎます。
- 並列ブロック文(parallel block statement)はGNATと両立しません。
- 並列ループ(parallel loop)はGNATと両立しません。
主要概念の定義
機械可読データ
このデータセットについて
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。