Skip to main content
QUICK REVIEW

[論文レビュー] A DENOTATIONAL ENGINEERING OF PROGRAMMING LANGUAGES to make software systems reliable and user manuals clear, complete and unambiguous. A book in statu nascendi

Andrzej Blikle, Chrząstowski-Wachtel, Piotr|arXiv (Cornell University)|Jan 1, 2018
Computability, Logic, AI Algorithms参考文献 17被引用数 1
ひとこと要約

この論文は、形式的数学的モデルを用いて言語の意味を正確に定義する、記述的工学的手法をプログラミング言語に導入する。その目的は、ソフトウェアの信頼性を向上させ、ユーザーマニュアルの曖昧さを排除することにある。cpos(鎖完全な部分順序)と形式的文法に基づく記述的モデルを通じてプログラミング言語を構造化することで、曖昧さのない数学的に厳密な言語定義が可能となり、正しいプログラム開発および文書作成のためのツール支援が可能になる。

ABSTRACT

The book is devoted to two research areas: (1) Designing programming languages along with their denotational models. A denotational model of a language consists of two many-sorted algebras - an algebra of syntax and an algebra of denotations - and a (unique) homomorphism from syntax to denotations called the semantics of the language. (2) Designing sound program-constructors for languages with denotational models. In our approach programs syntactically contain their total-correctness specifications. A program is said to be correct if it is correct wrt its specification. A program-constructor is sound if given correct component-programs yields a correct resulting program. Both methods are illustrated on an example-language Lingua.

研究の動機と目的

  • 既存のプログラミング言語マニュアルにおける曖昧さ、不完全性、不整合性を解消すること。
  • 記述的モデルを用いて形式的に言語の意味を指定することで、ソフトウェアの信頼性を向上させること。
  • 形式的意味論に基づいて、明確で完全かつ曖昧さのないユーザーマニュアルを体系的に作成するための方法論を確立すること。
  • 階層的な言語設計(Lingua)と形式的検証の原則を用いて、正しいプログラムの開発を支援すること。
  • 提案された言語工学フレームワークの実装と検証を支援するコミュニティおよびツールチェーンを構築すること。

提案手法

  • 鎖完全な部分順序(cpos)に基づく記述的モデルを用いて、数学的厳密性と完全性を保証するプログラミング言語の定義。
  • 形式的定義から生成される抽象構文、具象構文、意味論節を備えた、多層構造の言語設計「Lingua」の導入。
  • 形式的代数的シグネチャを用いて抽象構文文法を生成し、意味論節の生成を支援。
  • 意味論節と構文定義から、自動的にコード生成(インタプリターやコンパイラを含む)を可能にするツールの設計。
  • 日常的使用の構文を形式的具象構文に復元するためのシステムの設計により、使いやすさの向上。
  • 基礎的な意味論を統合することで、明確さと一貫性を保証するマニュアル作成のためのフレームワークの構築。

実験結果

リサーチクエスチョン

  • RQ1プログラミング言語の意味論をどのように形式化すれば、仕様の曖昧さを排除し、完全性を確保できるか?
  • RQ2信頼性があり曖昧さのないプログラミング言語定義を構築するための数学的基盤は何か?
  • RQ3専門知識がなくても理解可能な形で、形式的意味論を反映したマニュアルを体系的に作成するにはどうすればよいか?
  • RQ4構文から実行までをカバーする形式的に定義されたプログラミング言語の実装を支援するためのツールチェーンは何か?
  • RQ5形式的根拠に基づくプログラミング言語システムを構築・維持するための開発者コミュニティをどのように形成できるか?

主な発見

  • 記述的工学的手法は、cposと形式的文法に基づく数学的に妥当な基盤を提供し、意味論の完全性を保証する。
  • 形式的シグネチャから構築された階層的言語システム(Lingua)は、モジュラーかつ正しい言語開発を可能にする。
  • 形式的定義から、抽象構文、具象構文、意味論節、およびインタプリターやコンパイラのコードを体系的に導出可能なツールが構築できる。
  • 形式的意味論に基づくマニュアルは、専門的なプログラマーにとっても正確かつ理解しやすい形で作成可能であり、曖昧さが低減される。
  • このフレームワークは、数学的正確性を保ち、不適切な拡張を避けるために非オープンソースの実装を支援するコミュニティ駆動のシステム構築を可能にする。
  • マイクロプログラムを用いたプログラミング実験により、この手法が実世界のパフォーマンスが求められる文脈でも実行可能で正しいことが実証された。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。