知識マップ: ピクセルとミリメートルを型で分ける ── Adaで寸法検査の単位の取り違えを防ぐ

記事「ピクセルとミリメートルを型で分ける ── Adaで寸法検査の単位の取り違えを防ぐ」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

AdaではLong_Floatから派生した型どうしは別の型になり、ピクセルの長さをミリメートルの変数にそのまま入れるとコンパイルエラーになる。ただし派生型は親の型の基本演算を受け継ぐので、ピクセルの長さどうしの掛け算がピクセルの長さを返す。型を宣言したパッケージの仕様部で意味のない演算子をis abstractと宣言し直すと呼べなくなり、意味のある演算子だけを定義できる。座標・長さ・校正係数の型を総称パッケージにまとめてx用とy用にインスタンス化すると、軸ごとに別の型になり、x方向の係数をy方向の長さに掛ける式がコンパイルエラーになる。公差の判定は浮動小数点数のまま比べると上限ちょうどの値が不合格になることがあり、10進固定小数点型に丸めてから比べる。GNATは独自のアスペクトで次元解析を行えるが、座標と長さは区別できない。固定小数点型で書いた換算の範囲検査が失敗しないことは、GNATproveで証明できる。

ピクセルとミリメートルを型で分ける記事の知識マップAdaの強い型付けが派生型で単位の混用を防ぎ、派生型が受け継いだ意味のない演算子を抽象サブプログラムで消すこと、総称パッケージで軸ごとの型を作ること、固定小数点型の範囲検査をGNATproveで証明すること、GNATが独自の次元解析を実装することを示す図。実装を担う実装を担う利用する利用する利用する実装を担う利用するで確認できる利用する実装を担うAdaの強い型付け派生型(derived type)GNATAda(プログラミング言語)抽象サブプログラム(abstract subprogram)総称パッケージ(Generic Package)固定小数点型(fixed point type)範囲制約(range constraint)GNATproveSPARKGNATの次元解析(Dimension_System)

概念間の関係(全10件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Adaの強い型付け
構造が同じでも別名で宣言した型を別の型として扱い、暗黙の混用をコンパイルエラーにするAdaの型システムの性質。
派生型(derived type)
type T is new 親の型 の形で宣言する、親の型と同じ値の集合と基本演算を受け継いだ別の型。親の型や、同じ親から派生したほかの型と、型変換なしに混ぜて使えない。
GNAT
GCCに含まれる無償のAdaコンパイラで、Adaの代表的な処理系。
Ada(プログラミング言語)
1970年代後半にアメリカ国防総省の主導で標準化された、強い型付けと高信頼性を重視する汎用プログラミング言語。最新標準はAda 2022。
総称パッケージ(Generic Package)
複数の操作と内部状態をまとめて再利用するための、generic宣言に続けて書くパッケージの雛形。インスタンスごとに内部状態は独立する。
固定小数点型(fixed point type)
誤差の上限をdeltaで指定し、値を刻み(small)の整数倍で表すAdaの実数型。普通の固定小数点型と、smallがdeltaに等しく10のべき乗になる10進固定小数点型がある。
範囲制約(range constraint)
型に値の範囲を持たせ、違反を実行時にConstraint_Error例外として検出するAdaの仕組み。配列アクセスの境界チェックにも使われる。
SPARK
プログラムの性質を数学的に証明できるように設計された、Adaのサブセット(部分言語)とそのツール群。

機械可読データ

このデータセットについて

作成
合同会社小村ソフト
ライセンス
CC BY 4.0 ── 出典(合同会社小村ソフト)とライセンスへのリンクを明示し、改変した場合はその旨を示すことを条件に、再配布・改変を含めて再利用できます
最終確認日
2026-11-10 ── 収録する関係のうち、最後に出典と照合した日

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。