表示的意味論とは? わかりやすく解説

表示的意味論

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/30 16:28 UTC 版)

ナビゲーションに移動 検索に移動

計算機科学における表示的意味論(ひょうじてきいみろん、: Denotational Semantics)とは、プログラミング言語の意味を形式的に記述する形式意味論プログラム意味論)の一つの枠組みである。初期には「数理的意味論」(mathematical semantics)、「スコット=ストレイチー意味論」(Scott–Strachey semantics)のようにも呼ばれた。表示的意味論では、記述された言語の各語句に、表示的意味(denotation)、すなわちプログラム全体の意味に対してその中に現れる各語句が担う役割を表す数学的対象(object)、を与える方法をとる[1]

表示的意味論の起源は、1960年代クリストファー・ストレイチーデイナ・スコットの研究である。ストレイチーやスコットが開発した本来の表示的意味論は、プログラムの表示(意味)を入力を出力にマッピングする関数に変換するものである。後にこれはプログラムの表示(意味)を定義するには非力であることが証明され、例えば再帰定義関数・データ構造を表現できないことが判明した。これを解決するため、スコットはより汎用的な領域理論に基づいた表示的意味論を提案した[2]。その後、研究者らはPower Domainsに基づいた手法を提案し、並行システムの意味論の困難さを克服する努力をしている[3]

概要

表示的意味論は、クリストファー・ストレイチーが1964年に形式言語記述言語(formal language description language)に関するIFIP作業部会のために書いた論文"Towards a formal semantics"に始まる。この論文は、抽象構文を関数(便宜的に関数は型無しラムダ計算で表現されていた)へ写像し、関数の合成で定義された意味関数を導入し、不動点組合せ演算子 Y を使ってループの意味を表示させるものであった。ここで理論的に問題であったのは、プログラムの要素の表示的意味(denotation)は、形式的には、型無しのラムダ計算(type-free lambda calculus)に写像される形になっていたが、その肝心の型無しのラムダ計算の数学的モデルがわかっていないということであった。これは、すなわち、不動点組合せ演算子 Y は操作的に規則として解釈することはできたが、表示的意味としてなにか関数を表すと考えることができなかった[4]

1969年に至って、ストレイチーの理論に興味を抱いたデイナ・スコットは、ストレイチーとの共同研究の末、当初期待していなかった型無しラムダ計算のモデルについて、結局、型無しラムダ計算が実は数学的モデルを持つことを発見することになった。その後すぐに、スコットは、意味の記述法の基礎となる領域理論を構築した。

不動点意味論

表示的意味は、システムが行うことを表現する数学的オブジェクトを探すことに関心がある。この理論は計算の数学的領域(ドメイン)を利用する。そのような領域の例として完備半順序集合などがある。

関係 x≤y は、xy に計算的に発展する可能性があることを意味する。表示が完備半順序集合の要素ならば、例えば f≤gf が定義されている全ての値について g と等しいことを意味する。

計算領域は次のような特徴を持つ:

  1. 下限の存在: 領域には必ず で表される要素が含まれ、領域内の任意の要素 x について ⊥≤x が成り立つ。
  2. 上限の存在: 計算を続けると表示は洗練されるが、限界を持つべきである。そのため、
    出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。記事の信頼性向上にご協力をお願いいたします。2022年5月

    外部リンク


表示的意味論

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/13 22:25 UTC 版)

Communicating Sequential Processes」の記事における「表示的意味論」の解説

CSP主な表示的モデルとして、トレースモデル、安定失敗モデル失敗/発散モデル3つがある。プロセス表現とこれらモデルの意味論的マッピングCSPの表示的意味論となる。 トレースモデルは、そのプロセスが扱う一連のイベントトレース)でプロセス表現の意味定義する例えば、 t r a c e s ( S T O P ) = { ⟨ ⟩ } {\displaystyle traces\left(STOP\right)=\left\{\langle \rangle \right\}} 何故なら S T O P {\displaystyle STOP} は何のイベント扱わないから t r a c e s ( a → b → S T O P ) = { ⟨ ⟩ , ⟨ a ⟩ , ⟨ a , b ⟩ } {\displaystyle traces\left(a\rightarrow b\rightarrow STOP\right)=\left\{\langle \rangle ,\langle a\rangle ,\langle a,b\rangle \right\}} 何故ならプロセス ( a → b → S T O P ) {\displaystyle (a\rightarrow b\rightarrow STOP)} は、何のイベント扱わない場合イベント a {\displaystyle a} を受け付け場合イベント a {\displaystyle a} を受け付けた後でイベント b {\displaystyle b} を受け付け場合3つのケースありうるから より形式的に表せばプロセス P {\displaystyle P} のトレースモデルでの意味t r a c e s ( P ) ⊆ Σ ∗ {\displaystyle traces\left(P\right)\subseteq \Sigma ^{\ast }} として定義される。すなわち、 ⟨ ⟩ ∈ t r a c e s ( P ) {\displaystyle \langle \rangle \in traces\left(P\right)} ( t r a c e s ( P ) {\displaystyle traces\left(P\right)} は空のシーケンスを含む) s 1 ⌢ s 2 ∈ t r a c e s ( P ) ⟹ s 1t r a c e s ( P ) {\displaystyle s_{1}\smallfrown s_{2}\in traces\left(P\right)\implies s_{1}\in traces\left(P\right)} ( t r a c e s ( P ) {\displaystyle traces\left(P\right)} はプレフィックス閉じている) ここで、 Σ ∗ {\displaystyle \Sigma ^{\ast }} は考えられる全てのイベント有限な並び集合である。 安定失敗モデルはトレースモデルを拒絶集合(refusal set)で拡張したのである拒絶集合とは、プロセス実行拒絶できるイベント集合 X ⊆ Σ {\displaystyle X\subseteq \Sigma } である。失敗failure)は ( s , X ) {\displaystyle \left(s,X\right)} という対で表される。ここで s {\displaystyle s} はトレース、 X {\displaystyle X} は拒絶集合であり、トレース s {\displaystyle s} が実行されたときそのプロセス拒絶するイベント群を表す。安定失敗モデルにおけるプロセス観測され振る舞いは、 ( t r a c e s ( P ) , f a i l u r e s ( P ) ) {\displaystyle \left(traces\left(P\right),failures\left(P\right)\right)} という対で表される例えば、 f a i l u r e s ( ( a → S T O P ) ◻ ( b → S T O P ) ) = { ( ⟨ ⟩ , ∅ ) , ( ⟨ a ⟩ , { a , b } ) , ( ⟨ b ⟩ , { a , b } ) } {\displaystyle failures\left(\left(a\rightarrow STOP\right)\Box \left(b\rightarrow STOP\right)\right)=\left\{\left(\langle \rangle ,\emptyset \right),\left(\langle a\rangle ,\left\{a,b\right\}\right),\left(\langle b\rangle ,\left\{a,b\right\}\right)\right\}} f a i l u r e s ( ( a → S T O P ) ⊓ ( b → S T O P ) ) = { ( ⟨ ⟩ , { a } ) , ( ⟨ ⟩ , { b } ) , ( ⟨ a ⟩ , { a , b } ) , ( ⟨ b ⟩ , { a , b } ) } {\displaystyle failures\left(\left(a\rightarrow STOP\right)\sqcap \left(b\rightarrow STOP\right)\right)=\left\{\left(\langle \rangle ,\left\{a\right\}\right),\left(\langle \rangle ,\left\{b\right\}\right),\left(\langle a\rangle ,\left\{a,b\right\}\right),\left(\langle b\rangle ,\left\{a,b\right\}\right)\right\}} 失敗/発散モデルは、失敗モデル発散divergence)を扱えるよう拡張したのである失敗/発散モデルにおけるプロセスは ( f a i l u r e s ⊥ ( P ) , d i v e r g e n c e s ( P ) ) {\displaystyle \left(failures_{\perp }\left(P\right),divergences\left(P\right)\right)} という対で表されd i v e r g e n c e s ( P ) {\displaystyle divergences\left(P\right)} は発散生じさせるトレース集合である。また、 f a i l u r e s ⊥ ( P ) = f a i l u r e s ( P ) ∪ { ( s , X ) | s ∈ d i v e r g e n c e s ( P ) } {\displaystyle failures_{\perp }\left(P\right)=failures\left(P\right)\cup \left\{\left(s,X\right)\vert s\in divergences\left(P\right)\right\}} が成り立つ。

※この「表示的意味論」の解説は、「Communicating Sequential Processes」の解説の一部です。
「表示的意味論」を含む「Communicating Sequential Processes」の記事については、「Communicating Sequential Processes」の概要を参照ください。

ウィキペディア小見出し辞書の「表示的意味論」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

','','','','','','','','','','','','','','','','','',''];function getDictCodeItems(a){return dictCodeList[a]};

すべての辞書の索引

「表示的意味論」の関連用語











表示的意味論のお隣キーワード
検索ランキング
';function getSideRankTable(){return sideRankTable};

   

英語⇒日本語
日本語⇒英語
   



表示的意味論のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの表示的意味論 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのCommunicating Sequential Processes (改訂履歴)、形式手法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS