Skip to main content
QUICK REVIEW

[논문 리뷰] Domain Theory for Modeling OOP: A Summary

Moez A. AbdelGawad|arXiv (Cornell University)|2014. 06. 29.
Reservoir Engineering and Simulation Methods참고 문헌 1인용 수 6
한 줄 요약

이 논문은 도메인 이론을 기반으로 객체 지향 프로그래밍(OOP)을 모델링하기 위한 기초를 제시하며, COOP를 OOP의 구조적 모델로 도입하고 NOOP를 명목적형 확장으로 제시한다. 재귀적 도메인 방정식과 연속적인 도메인 생성자(합, 곱, 함수 공간)를 사용하여 무한하고 자기 참조적인 객체를 모델링하기 위한 최소 고정점 해를 구성하며, 주류 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.

연구 동기 및 목표

  • 부분 정보와 점진적 계산을 포괄하는 형식적이고 도메인 이론적인 기초를 확립하기 위해.
  • 도메인 이론을 사용하여 재귀적이고 자기 참조적인 객체를 무한한 데이터 값으로 모델링하기 위해.
  • COOP를 간단한 구조적 OOP 모델로 구성하여 NOOP를 구축하는 데의 기초로 삼기 위해.
  • 도메인 이론적 의미론을 사용하여 명목적형 OOP 언어에서 상속과 부타입이 동일시됨을 공식적으로 증명하기 위해.
  • OOP에서 고계수, 재귀적, 부분적으로 정의된 객체 값에 대해 추론하기 위한 엄밀한 수학적 프레임워크를 제공하기 위해.

제안 방법

  • 계산적 값들을 부분적으로 순서가 있는 집합(포지트)의 원소로 모델링하는 데 도메인 이론을 기초로 사용한다.
  • 도메인 생성자로 코ales스드 합(+), 곱(∗), 함수 공간(→), 그리고 레코드(↦)를 정의하여 단순한 도메인으로부터 복잡한 도메인을 구성한다.
  • 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가 만들고, 인간 에디터가 검토했습니다.