56
2
章 プログラムの意味
知られています。ビッグステップ意味論は、自然意味論(natural semantics)や関係意味論(relational
semantics)と呼ばれることも多いです。表示的意味論は、不動点意味論(fixed-point semantics)や
数学的意味論(mathematical semantics)とも呼ばれます。
形式意味論のスタイルは他にもあります。その1つが公理的意味論(axiomatic semantics)です。公
理的意味論では、文を実行する前後の抽象機械の状態について表明(assertion)をすることで、文の
意味を記述します。文の実行前の表明(事前条件(precondition))が真であれば、文の実行後に別の
表明(事後条件(postcondition))が真になります。公理的意味論はプログラムの正当性を検証するの
に役立ちます。文を組み合わせることでより大きなプログラムが作れるのと同様に、表明を組み合わせ
ることでより大きな表明を作ることができます。これによって、プログラムに関する全体的な表明が意
図した仕様と一致していることを示すことができます。
細部は異なりますが、公理的意味論は「プログラミング言語Rubyのための実行可能な仕様」である
RubySpecプロジェクト(http://rubyspec.o
rg)にも見ることができます
†
。RubySpecはRSpecスタイル
の表明を使って、Rubyの組み込みの言語構成要素やそのコアおよび標準