Skip to main content
QUICK REVIEW

[論文レビュー] Domain Theory for Modeling OOP: A Summary

Moez A. AbdelGawad|arXiv (Cornell University)|Jun 29, 2014
Reservoir Engineering and Simulation Methods参考文献 1被引用数 6
ひとこと要約

本稿は、オブジェクト指向プログラミング(OOP)のためのドメイン理論的基盤を提示し、COOPをOOPの構造的モデルとして導入し、NOOPをノミナリティ型OOPの拡張として提示する。再帰的ドメイン方程式と連続的ドメインコンストラクタ(和、積、関数空間)を用い、無限で自己参照的なオブジェクトをモデル化する最小固定点解を構築し、主流のOOP言語における継承とサブタイプが形式的に同一視可能であることを証明する。

ABSTRACT

Domain theory is `a mathematical theory that serves as a foundation for the semantics of programming languages'. Domains form the basis of a theory of partial information, which extends the familiar notion of partial function to encompass a whole spectrum of "degrees of definedness", so as to model incremental higher-order computation (i.e., computing with infinite data values, such as functions defined over an infinite domain like the domain of integers, infinite trees, and such as objects of object-oriented programming). General considerations from recursion theory dictate that partial functions are unavoidable in any discussion of computability. Domain theory provides an appropriately abstract setting in which the notion of a partial function can be lifted and used to give meaning to higher types, recursive types, etc. NOOP is a domain-theoretic model of nominally-typed OOP. NOOP was used to prove the identification of inheritance and subtyping in mainstream nominally-typed OO programming languages and the validity of this identification. In this report we first present the definitions of basic domain theoretic notions and domain constructors used in the construction of NOOP, then we present the construction of a simple structural model of OOP called COOP as a step towards the construction of NOOP. Like the construction of NOOP, the construction of COOP uses earlier presented domain constructors.

研究の動機と目的

  • 部分的情報と段階的計算を捉える形式的、ドメイン理論的基盤をOOPに確立すること。
  • ドメイン理論を用いて、再帰的で自己参照的なオブジェクトを無限データ値としてモデル化すること。
  • COOPをOOPの簡素化された構造的モデルとして構築し、NOOPの構築への足がかりとすること。
  • ドメイン理論的意味論を用いて、ノミナリティ型OOP言語における継承とサブタイプが等価であることを形式的に証明すること。
  • OOPにおける高階、再帰的、部分的に定義されたオブジェクト値について推論するための厳密な数学的枠組みを提供すること。

提案手法

  • 計算的値を部分的に順序付けられた集合(poset)の要素としてモデル化するため、ドメイン理論を基盤とし、近似順序を用いる。
  • ドメインコンストラクタ(合併 +、積 ∗、関数空間 →、レコード ↦)を定義し、単純なドメインから複雑なドメインを構築する。
  • COOPオブジェクトドメイン O を再帰的ドメイン方程式の最小固定点として構築する:O = B + L ↦ (O∗ → O)、ここで B は基本ドメイン、L はラベルドメインである。
  • 連続的ドメインコンストラクタを用いて、反復的近似列 O₀, O₁, ..., による最小固定点(lfp)構成を行う。O₀ = ∅ とし、Oᵢ₊₁ を定義する。
  • コンストラクタの連続性を保証することで、列の上界(lub)の存在を保証し、解 O = ⋃ᵢ≥₀ Oᵢ を得る。
  • 逆極限と固定点定理などの標準的手法を用い、再帰的オブジェクト定義の意味論が明確に定義されることを保証する。

実験結果

リサーチクエスチョン

  • RQ1ドメイン理論は、再帰的で自己参照的なオブジェクトを備えたオブジェクト指向プログラムを形式的にどのようにモデル化できるか?
  • RQ2部分的情報と近似順序は、オブジェクトの状態やメソッド呼び出しのモデル化において果たす役割は何か?
  • RQ3ドメインコンストラクタと再帰的ドメイン方程式を用いて、構造的OOPモデル(COOP)をどのように構築できるか?
  • RQ4ノミナリティ型OOPにおける継承とサブタイプの正式な関係は何か?ドメイン理論的意味論を用いて証明可能か?
  • RQ5無限データ値(例:自己参照を持つオブジェクト)は、形式的意味論においてどのように意味的に表現され、扱えるか?

主な発見

  • COOPモデルは再帰的ドメイン方程式の最小固定点として構築され、再帰的メソッド定義を持つオブジェクトの意味論が明確に定義される。
  • COOPドメイン方程式の解は、すべての近似の和集合として与えられる:O = ⋃ᵢ≥₀ Oᵢ、これは完全かつ連続なドメインを形成する。
  • 連続的ドメインコンストラクタ(和、積、関数空間)の使用により、固定点構成が有効であり、意味論的に明確なドメインが得られる。
  • この構成により、OOPにおけるオブジェクトは部分的で段階的な値としてモデル化可能であり、⊥ は発散または未定義状態を表す。
  • このフレームワークは、継承とサブタイプがノミナリティ型OOPにおいて形式的に等価であることを証明する形式的基盤を提供する。これは型システム理論において重要な結果である。
  • このアプローチはNOOPへ一般化可能であり、ノミナリティ型OOPのドメイン理論的モデルを示し、このようなモデルがドメイン理論的原則を用いて厳密に構築可能であることを示す。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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