Mathematical study of the meaning of programming languages
プログラミング言語理論 において 、 意味論とは プログラミング言語 の意味を厳密な数理論理学的に研究する学問である 。 [1]意味論は 、プログラミング言語の構文 における有効な 文字列に 計算上の 意味 を付与する。これは 数学的証明の意味論 と密接に関連し、しばしば重複する 。
セマンティクスとは 、特定の言語でプログラムを 実行する 際にコンピュータが辿るプロセスを記述するものです。これは、プログラムの入力と出力の関係を記述したり、特定の プラットフォーム 上でプログラムがどのように実行されるかを説明することで実現され、 計算モデル を構築します。
歴史
1967年、 ロバート・W・フロイドは 論文「 プログラムへの意味の割り当て」 を発表しました。彼の主な目的は「 正しさ 、等価性、停止性の証明を含む、コンピュータプログラムに関する証明のための厳密な標準」でした。 [2] [3] フロイドはさらに次のように書いています。 [2]
私たちのアプローチでは、プログラミング言語の意味的定義は 構文的 定義に基づいています。構文的に正しいプログラム内のどのフレーズが コマンド を表すのか、そして各コマンドの近傍における解釈にどのよう な条件を 課すべきかを明確にする必要があります。
1969年、 トニー・ホーアは フロイドのアイデアを基にした ホーア論理 に関する論文を発表した。これは現在では総称して 公理的意味論 と呼ばれることもある。 [4] [5]
1970年代には操作的意味論 と 表示的意味論という 用語 が登場した。 [5]
概要
形式意味論の分野には、以下のすべてが含まれます。
セマンティックモデルの定義
異なる意味モデル間の関係
意味に対する異なるアプローチの関係
論理学 、 集合論 、 モデル理論 、 カテゴリー理論 など の分野における計算と基礎となる数学的構造との関係。
プログラミング言語設計 、 型理論 、 コンパイラ と インタープリタ 、 プログラム検証 、 モデル検査 など、 コンピュータサイエンス の他の分野と密接な関係があります 。
アプローチ
形式意味論にはさまざまなアプローチがあり、それらは 3 つの主要なクラスに属します。
表示的、操作的、または公理的なアプローチの選択とは別に、形式意味システムにおけるほとんどのバリエーションは、サポートする数学的形式主義の選択から生じます。 [ 引用が必要 ]
バリエーション
形式意味論のバリエーションには次のようなものがあります。
関係性を説明する
様々な理由から、異なる形式意味論間の関係を記述したい場合があります。例えば、
ある言語の特定の操作的意味論が、その言語の公理的意味論の論理式を満たすことを証明すること。このような証明は、特定の(公理的) 証明体系 を用いて特定の(操作的) 解釈戦略 について推論することが「健全」であることを示す。
高水準機械上の操作的意味論が、低水準機械上の意味論と シミュレーション によって関連付けられていることを証明すること。この場合、低水準抽象機械は、与えられた言語の高水準抽象機械定義よりも多くの基本操作を含む。このような証明は、低水準機械が高水準機械を「忠実に実装」していることを示す。
抽象解釈 理論を介した 抽象化 を通じて、複数の意味を関連付けることも可能である 。 [ 要出典 ]
参照
参考文献
^ ゴーゲン、ジョセフ・A. (1975). 「計算の意味論」. 圏論の計算と制御への応用 . コンピュータサイエンス講義ノート. 第25巻. シュプリンガー . pp. 151– 163. doi :10.1007/3-540-07142-3_75. ISBN 978-3-540-07142-6 。
^ ab フロイド, ロバート W. (1967). 「プログラムへの意味の付与」 (PDF) . シュワルツ, JT (編). コンピュータサイエンスの数学的側面. 応用数学シンポジウム議事録. 第19巻. アメリカ数学会. pp. 19– 32. ISBN 0821867288 。
^ ドナルド・E・クヌース 「追悼決議:ロバート・W・フロイド(1936–2001)」 (PDF) 。 スタンフォード大学教職員追悼式典 。スタンフォード歴史協会。
^ Hoare, CAR (1969年10月). 「コンピュータプログラミングの公理的基礎」. Communications of the ACM . 12 (10): 576– 580. doi : 10.1145/363235.363259 . S2CID 207726175.
^ ab Winskel, Glynn (1993). 『プログラミング言語の形式意味論入門』 マサチューセッツ州ケンブリッジ: MIT Press. p. xv. ISBN 978-0-262-23169-5 。
^ シュミット、デイビッド・A. (1986). 『表示的意味論:言語発達のための方法論 』ウィリアム・C・ブラウン出版社. ISBN 9780205104505 。
^ Plotkin, Gordon D. (1981). 操作的意味論への構造的アプローチ(報告書). 技術報告書 DAIMI FN-19. オーフス大学 コンピュータサイエンス学部.
^ ab Goguen, Joseph A. ; Thatcher, James W. ; Wagner, Eric G. ; Wright, Jesse B. (1977). 「初期代数意味論と連続代数」. Journal of the ACM . 24 (1): 68– 95. doi : 10.1145/321992.321997 . S2CID 11060837.
^ Mosses, Peter D. (1996). 動作意味論の理論と実践(報告書). BRICS報告書 RS9653. オーフス大学 .
^ デランサール, ピエール; ジュールダン, マーティン; ロルホ, ベルナール (1988). 「属性文法:定義、システム、参考文献 」. コンピュータサイエンス講義ノート 323. シュプリンガー・フェアラーク . ISBN 9780387500560 。
^ Lawvere, F. William (1963). 「代数理論の関数的意味論」. 米国科学アカデミー紀要 . 50 (5): 869– 872. Bibcode :1963PNAS...50..869L. doi : 10.1073/pnas.50.5.869 . PMC 221940. PMID 16591125 .
^ Andrzej Tarlecki; Rod M. Burstall ; Joseph A. Goguen (1991). 「計算の意味論のための基本的な代数的ツール:第3部 インデックス付きカテゴリ」. 理論計算機科学 . 91 (2): 239– 264. doi : 10.1016/0304-3975(91)90085-G .
^ Batty, Mark; Memarian, Kayvan; Nienhuis, Kyndylan; Pichon-Pharabod, Jean; Sewell, Peter (2015). 「プログラミング言語の並行性セマンティクスの問題」 (PDF) . Proceedings of the European Symposium on Programming Languages and Systems . Springer . pp. 283– 307. doi : 10.1007/978-3-662-46669-8_12 .
^ Abramsky, Samson (2009). 「インタラクションの意味論:ゲーム意味論入門」Andrew M. Pitts、P. Dybjer編著『計算の意味論と論理』ケンブリッジ大学出版局. pp. 1– 32. doi :10.1017/CBO9780511526619.002. ISBN 9780521580571 。
^ Dijkstra, Edsger W. (1975). 「ガード付き命令、非決定性、そしてプログラムの形式的導出」 Communications of the ACM . 18 (8): 453– 457. doi : 10.1145/360933.360975 . S2CID 1679242.
さらに読む
教科書
講義ノート
ウィンスケル、グリン. 「表示的意味論」 (PDF) . ケンブリッジ大学.
外部リンク
Aaby, Anthony (2004). プログラミング言語入門. 2015年6月19日時点のオリジナルよりアーカイブ。 セマンティクス。