翻訳と辞書
Words near each other
・ CD抗原
・ CD理論
・ CD番号
・ CD選書
・ CD離れ
・ CEARTレポート
・ CEC (企業)
・ CECAFAカップ
・ CEE証券取引所グループ
・ CEIBAインターコンチネンタル
CEK機械
・ CELEO八王子
・ CELEO武蔵小金井
・ CEM包装
・ CEROレーティング12才以上対象ソフトの一覧
・ CEROレーティング12歳以上対象ソフトの一覧
・ CEROレーティング15才以上対象ソフトの一覧
・ CEROレーティング15歳以上対象ソフトの一覧
・ CEROレーティング17才以上対象ソフトの一覧
・ CEROレーティング17歳以上対象ソフトの一覧


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

CEK機械 : ウィキペディア日本語版
CEK機械
CEK機械Matthias Felleisen and Matthew Flatt. Programming Languages and Lambda Calculi . Unpublished manuscript, 1989-2001〕とは、ラムダ計算に対して値渡し評価戦略操作的意味論を与えるための抽象機械の1つである。CEKとは、機械の状態を構成する3つの要素である “Control string”, “Environment”, “Continuation” に由来する〔。
== 定義 ==
拡張ラムダ計算に対するCEKは次のように定義される〔。
まず、拡張ラムダ計算を次のように定義する。

(式)


M ::=

    X (変数)

  | \ \lambda X. M (λ抽象)

  | \ M \ M (関数適用)

  | \ b (基本定数)

  | \ o^n \ M \ ... \ M (プリミティブ操作の適用)
(値)

V ::= \lambda X. M \ | \ b

次に、CEK機械の状態を構成する要素を次のように定義する。

(環境)

E ::= \left\lbrace\left\langle X, c\right\rangle , ...\right\rbrace (変数から、クロージャへの関数(変数とクロージャのペアの集合))

E\leftarrow c = \left\lbrace\left\langle X, c\right\rangle \right\rbrace \cup \left\lbrace\left\langle Y, c'\right\rangle | \left\langle Y, c'\right\rangle \in E \land Y \ne X\right\rbrace
(クロージャ)

c ::= \left\langle M, E\right\rangle (ただし、Mの自由変数は全てEの定義域に含まれる)
(値)

v ::= \left\langle V, E\right\rangle (ただし、Vの自由変数は全てEの定義域に含まれる)
(継続)

K ::=

    \mathsf (初期継続)

  |\ \left\langle \mathsf, V, K\right\rangle (関数適用への継続)

  |\ \left\langle \mathsf, M, K\right\rangle (実引数評価への継続)

  |\ \left\langle \mathsf, \left\langle v, ..., v, o\right\rangle , \left\langle c, ...\right\rangle , K\right\rangle (プリミティブ操作の実引数の評価および適用への継続)

このとき、CEK機械の状態は組\left\langle c, K\right\rangle = \left\langle \left\langle M, E\right\rangle , K\right\rangle と表される。
CEK機械の遷移規則は次のように定義される。

\left\langle \left\langle X, E\right\rangle , K\right\rangle
       \longmapsto_\mathsf \left\langle c, K\right\rangle (E(X) = c のとき)
\left\langle \left\langle M_1 \ M_2, E\right\rangle , K\right\rangle
       \longmapsto_\mathsf \left\langle \left\langle M_1, E\right\rangle , \left\langle \mathsf, \left\langle M_2, E\right\rangle , K\right\rangle \right\rangle
\left\langle \left\langle o \ M_1 \ M_2 \ ..., E\right\rangle , K\right\rangle
       \longmapsto_\mathsf \left\langle \left\langle M_1, E\right\rangle , \left\langle \mathsf, \left\langle o\right\rangle , \left\langle \left\langle M_2, E\right\rangle , ...\right\rangle , K\right\rangle \right\rangle
\left\langle \left\langle V, E'\right\rangle , \left\langle \mathsf, \left\langle \lambda X. M, E\right\rangle , K\right\rangle \right\rangle
       \longmapsto_\mathsf \left\langle \left\langle M, E\leftarrow \left\langle V, E'\right\rangle \right\rangle , K\right\rangle (Vが変数でない場合)
\left\langle \left\langle V, E'\right\rangle , \left\langle \mathsf, \left\langle M, E\right\rangle , K\right\rangle \right\rangle
       \longmapsto_\mathsf \left\langle \left\langle M, E\right\rangle , \left\langle \mathsf, \left\langle V, E'\right\rangle , K\right\rangle \right\rangle (Vが変数でない場合)
\left\langle \left\langle V, E\right\rangle , \left\langle \mathsf, \left\langle c', ...\right\rangle , \left\langle \left\langle N, E'\right\rangle , c, ...\right\rangle , K\right\rangle \right\rangle
       \longmapsto_\mathsf \left\langle \left\langle N, E'\right\rangle , \left\langle \mathsf, \left\langle \left\langle V, E\right\rangle , c', ...\right\rangle , \left\langle c, ...\right\rangle , K\right\rangle \right\rangle (Vが変数でない場合)
\left\langle \left\langle b, E\right\rangle , \left\langle \mathsf, \left\langle \left\langle b_i, E_i\right\rangle , ..., \left\langle b_1, E'\right\rangle , o\right\rangle , \left\langle \right\rangle , K\right\rangle \right\rangle
       \longmapsto_\mathsf \left\langle \left\langle V, \emptyset \right\rangle, K\right\rangle (Vob_1, ..., b_i, bを適用した結果)

このとき、CEK機械による評価関数\mathit_\mathsf(M)は次のように定義される

\mathit_\mathsf(M) = b    (\left\langle \left\langle M, \emptyset\right\rangle , \mathsf\right\rangle \longmapsto_\mathsf^ \left\langle \left\langle b, E\right\rangle , \mathsf\right\rangle のとき)
\mathit_\mathsf(M) = \mathsf    (\left\langle \left\langle M, \emptyset\right\rangle , \mathsf\right\rangle \longmapsto_\mathsf^ \left\langle \left\langle \lambda X. M, E\right\rangle , \mathsf\right\rangle のとき)


抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「CEK機械」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.