Structural operational semantics

Structural operational
semantics
•Structural operational semanticsでは実行過
程の各々の段階に注目する。
•Transition relation の形は、
<S, s> ⇒ r と表す。
(1)r
が<S’, s’>の形
状態
sにおけるSの実行が終わらなかっ
た。結
果ではなく、中間の形。
(2)rが
s’の形
状態s
におけるSは終了して、最終状態はs’。
•rが存在しなければ、stuck(行き詰まった?)と
呼ぶ。
finite と infinite
• 状態sからステートメントSを実行したとき、
derivation sequence は以下の2つのどち
らかになる。
(1) finiteなシーケンス
r0, r1, r2, ‥ rk rkはterminalかstuck
の形
(2)infiniteなシーケンス
r0, r1, r2, ‥
ステップ数の表し方
• r0 ⇒i ri ‥ r0からriまで実行するのにiス
テップあることを示す。
• r0 ⇒* ri ‥ r0からriまで実行するのに、有
限回のステップがあることを示す。
• 上の2つは、derivation sequence でなくて
もよい。riがterminal もしくは、stuckの形で
あればよい。
terminateとloop
• <S, s>から始めて、有限のderivation
sequenceになるとき、状態sにおけるス
テートメントSの実行はterminateするという。
• <S, s>から始めて、無限に続く
derivation sequenceになるとき、状態sに
おけるステートメントSの実行はloopすると
いう。
定義
• 状態sにおけるステートメントSの実行は、
<S, s> ⇒* s’になるとき、成功した
(terminate successfully)という。
• また、Sがすべてのsにおいて終了するとき、
Sはいつでも終了するという。
• また、Sがすべてのsにおいてloopするとき、
Sはいつでもloopするという。
Property of the semantics
• Structural operational semantics では、
derivation sequence の長さにおける帰納
法で証明するのが好都合である。
• 実際証明するときは、この帰納法のステッ
プは以下のどちらかを調べることでなされ
る。(1)syntaxの要素の構造
(2)derivation sequenceの最初の
transitionの正当性を証明する導出木
Induvction on the Length of Derivation
Sequence(derivation sequenceの長さにお
ける帰納法)
• 1, まず示したい性質が全ての長さが0の
deriation sequenceにて成立することを示す。
• 2, 次に他の全てのderivation sequence にて成
立することを示す。長さが最大でkの全ての
derivation sequenceを満たすことを仮定する
(induction hypothesis)。そして、長さがk+1の
derivation sequenceでも成立することを示す。
定理2.19
• <S1; S2, s> ⇒k s” ならば、
<S1, s> ⇒k1 s’かつ<S2, s’> ⇒k2 s”
である。(ただしk = k1 + k2)
となるような状態sと自然数k1とk2が存在
する。
deterministic
• テーブル2.2が、全てのS, s, r, r’
において、<S, s> ⇒ r かつ<S,
s> ⇒ r’ならば r = r’であるとき、
テーブル2.2はdeterministicであ
るという。