IT用語集 › プログラミング › 意味論(プログラミング)

意味論(プログラミング)

プログラミング Svenska → 更新: 2026-10-23

プログラムが何を意味するか、実行時に何をするか。見た目を扱う構文とは別物。厳密に定める方法は、操作的・表示的・公理的の3つ。

操作的意味論は、プログラムを状態機械とみなし、各ステップの動作を意味とする(SECDマシン、抽象解釈)。表示的意味論は、プログラムを数学的な関数とみなす(Scott+Strachey、1970年代)。公理的意味論は、プログラムを状態についての論理式とみなす(Hoare論理、分離論理)。実用上はコンパイラ設計、形式検証、言語設計で重要になる。C/C++の未定義動作は「意味論が何も言っていない場合」であり、だからコンパイラはそうしたケースを最適化で消してしまってよい。

← 用語集に戻る