함수형 프로그래밍은 매우 우아한 Lambda Calculus와 그 변형을 백업 이론으로 사용합니다. OOP에 그런 것이 있습니까? 객체 지향 모델에 대한 추상화 란 무엇입니까?
함수형 프로그래밍은 매우 우아한 Lambda Calculus와 그 변형을 백업 이론으로 사용합니다. OOP에 그런 것이 있습니까? 객체 지향 모델에 대한 추상화 란 무엇입니까?
답변:
네 가지 주요 접근 방식이 있지만 사용 가능한 대상의 표면 만 긁습니다.
객체 모델 코어와 집합 이론 간의 연결은 다음 문서에 설명되어 있습니다.
이 문서는 객체의 인스턴스 구조와 상속 관계를 나타냅니다. 이러한 구조는 가능한 가장 높은 OOP 추상화로 간주 될 수 있습니다. 구조가 특정 프로그래밍 언어 (Ruby, Python, Java, Scala, Smalltalk-80, Objective-C, CLOS, Perl, Dylan, JavaScript) 및 온톨로지 언어 (RDF 스키마 및 OWL 2 Full)에 어떻게 적용되는지 보여줍니다.
이 문서에서 클래스는 객체 접근 방식을 취해 코어 구조가 단일 정렬됩니다. 기본 형식에서 구조는 (O, ϵ , ≤, .ec) 로 표현 될 수 있습니다 .
Ruby 오브젝트 모델에 따른 샘플 코어 구조는 다음 다이어그램에 표시되어 있습니다. 에서 블루 링크 - 녹색 링크는 재귀 전이 감소 상속 관계, 파란색 링크는 "포섭 감소"의 회원 관계를 보여 보여 X의 최소한의 컨테이너 점 X를 . 파워 클래스 맵 .ec 은 파란색 가로 링크로 구성됩니다. 이지도 이미지의 개체는 파워 클래스 (회색)입니다. 루비에서는 그것들을 고유 클래스 또는 싱글 톤 클래스 라고 합니다 (후자의 용어는 더 이상 사용되지 않습니다). 개체 S , U 및 V는 (핑크)이다 단말기나머지 객체는 상속 루트 r의 자손입니다 .
r = BasicObject; c = Class; A = c.new(r); B = c.new(A); s = A.new; u = B.new; v = B.new; class << s; end; class << v; end
위의 모든 언어의 객체 모델의 핵심 부분은 추가 구성 요소가 없거나 몇 가지만있는 구조의 특수화로 볼 수 있습니다. 이론적으로 볼 때 추가 구성 요소의 가장 중요한 경우는 Dylan이 도입 한 싱글 톤 맵 ( .ɛϲ )입니다. 이로 인해 Dylan은 위에서 언급 한 유일한 프로그래밍 언어로 구성 기호 ○가 왼쪽에서 오른쪽으로 해석되는 단 조성 조건 (≤) ○ (ϵ) ⊆ (ϵ)이 적용되지 않습니다.
x.ec 또는 x.ɛϲ 를 고려할 수 있기 때문에 객체 모델 코어와 집합 이론 사이의 연결을 공식화하는 한 가지 방법 은 참조 문서에서 메타 오브젝트 구조 라고 하는 구조 군 (O, ≤, r, .ec, .ɛϲ)을 이용하는 것입니다. x의 메타 객체로 . 이러한 구조에서 x.ec 은 모든 객체 x에 대해 정의 되고 x.ɛϲ 는 모든 경계 ( "작은") 객체 x에 대해 정의됩니다 . 구조는 아래의 9 가지 공리를 따릅니다. 공리 화는 처음 8 개의 공리에 대해 매우 간단한 정의 확장을 사용합니다 ( T자손되지 않은 것들 - 단자 객체 집합이고 , R 및 .ec *가 재귀 전이 폐쇄이다 .ec ) 아니라 마지막 공리를위한 참여.
마지막 공리에서 ϖ 는 고정 한계 서수이고 .d 는 정의 확장에 의해 도출 된 순위 함수입니다. 객체 멤버십 관계 ϵ는 (( .ɛϲ ) ∪ ( .ec )) ○ (≤)으로 구합니다 . 마지막 공리에 따르면 경계 객체 집합에 대한 ϵ의 도메인 제한은 ( .ɛϲ ) ○ (≤) 와 같습니다 . 참고 문헌에서이 관계를 경계 멤버쉽 이라고 하며 ∊로 표시합니다. 중요한 특성으로,이 관계는 잘 정립되어 있습니다. 이것은 r ϵ r 이후에 기본이 아닌 ϵ와 대조적입니다.. 객체 기술 (핵심 기술)과 설정 이론의 주요 대응 관계는 다음과 같이 표현 될 수 있습니다
∊ ↔ ∈
즉, 제한된 멤버쉽은 잘 설정된 세트 간의 멤버쉽에 해당합니다. 특별한 경우로, 등급 ϖ + 1 의 부분적 폰 뉴만 우주는 정의 적 확장에 의한 메타 객체 구조이다. 일반적으로 모든 초록 ( ϖ + 1 )- 상부 구조 (O, ∊ ) 는 완전한 메타 오브젝트 구조 와 정의상 동일합니다 . 모든 메타 오브젝트 구조는 완전한 메타 오브젝트 구조에 충실하게 포함될 수 있으며, 그 결과 폰 노이만 우주에 충실하게 임베드 될 수 있습니다.
기본 구조 라는 용어 는 메타 오브젝트 구조의 일반화에 사용됩니다. 이 일반화에서 .ec 및 .ɛϲ 는 (임의로) 부분적으로, 비어있을 수 있습니다. 특히, 최소 기본 구조는 상속 루트 r 만 포함하는 유한 기본 구조가 가능합니다 . 모든 기본 구조는 파워 클래스 완성과 싱글 톤 완성에 의해 메타 오브젝트 구조로 확장되어 기본 구조를 폰 노이만 우주에 충실하게 포함시킬 수 있습니다.