소유권 유형 및 분리 로직


10

소유권 유형과 분리 로직은 비슷한 목표를 가지고 있으며 소유권과 별칭을 제어합니다. 모듈 식 사양을 작성하는 기능도 추가해야 할 것입니다.

소유권 유형과 분리 논리 간의 관계에 대해 알려진 것은 무엇입니까?


모호하게 친숙하게 들립니다.
Dave Clarke

@DaveClarke : 내 대답이 당신에게 의미가 있습니까? 소유권에 대해 많은 작업을 수행했으며 분리 논리 작업으로 전환하기 전에 약간만 수행했습니다.
Neel Krishnaswami

@NeelKrishnaswami : 당신의 대답은 많은 의미가 있습니다. 시간을 찾을 수있을 때 약간의 차이를 메울 계획입니다. 어쨌든, 나는 상당한 비교를하는 종이를 모른다.
Dave Clarke

답변:


7

나는 최근에 소유권 유형에 대한 설문 조사를 마쳤으며 두 주제 간의 관계에 대해 거의 논의하지 못했습니다. 내가 만난 가장 가까운 세 가지 논문은 다음과 같습니다.

  • 양 자오와 존 보이 랜드. 소유권 유형에 대한 기본 권한 해석 2008 년 6 월 17-19 일, 중국 난징에서 소프트웨어 엔지니어링의 이론적 측면에 관한 두 번째 IEEE / IFIP 국제 심포지엄. IEEE Computer Society, 2008., 65–72 페이지.

  • Shuling Wang, Luís Soares Barbosa 및 José Nuno Oliveira. 제한된 분리 논리에 대한 관계형 모델. 2008 년 6 월 17-19 일, 중국 난징에서 소프트웨어 엔지니어링의 이론적 측면에 관한 IEEE / IFIP 국제 심포지엄 IEEE Computer Society, 2008., 263–270 페이지.

  • Shuling Wang과 Zongyan Qiu. 제한 및 적용을위한 일반적인 모델. 2008 년 6 월 17-19 일, 중국 난징에서 소프트웨어 엔지니어링의 이론적 측면에 관한 IEEE / IFIP 국제 심포지엄 IEEE Computer Society, 2008., 57–64 페이지.

첫 번째 논문은 프로그램에 대한 추론을 위해 개발 된 능력 시스템 인 Boyland의 분수 권한 측면에서 두 가지 유형의 소유권 유형, 즉 소유자로서의 지배자와 소유자로서의 자물쇠를 인코딩합니다.

두 번째 논문은 소유권 유형에 사용 된 것과 유사한 감금 아이디어를 취하여 분리 논리에 추가합니다.

세 번째 논문은 소유권 유형과 같은 다양한 제한 분야를 인코딩하는 데 사용되는 의미 론적 접근 방식을 개발했습니다. 시스템이 분리 논리를 포함하는지 확실하지 않으며 현재 액세스 할 수 없습니다. 그들의 접근 방식은 다소 임시적입니다. 그것은 제임스 노블 (James Noble)과 다른 사람들과 함께 얼마 전에 쓴 논문에 대해보다 공식적이고 체계적인 것으로 볼 수 있습니다.

  • 캡슐화 모델을 향해 제임스 노블 (James Noble), 로버트 비들 (Robert Biddle), 이완 템페로 (Ewan Tempero), 알렉스 포 타닌 (Alex Potanin), 데이브 클라크 (Dave Clarke).

9

차이점을 이해하는 방법은 소유권 유형 이 개체 그래프의 모양을 제한하고 분리 구조와 같은 구조적 시스템 이 힙에 액세스 할 수있는 권한을 관리한다는 것 입니다.

소유권 유형에 대한 최초의 작업에서 아이디어는 소유자 의 불변을 지배자 로 유지하는 것입니다 . 오브젝트 된다 지배 오브젝트가 까지의 루트 세트의 모든 경로 경우, 포함 . 따라서 는 에서만 도달 할 수 있습니다 . 따라서 시스템은 클래스 선언이 소유자에 의해 매개 변수화되도록 설계 되었으며이 사실은 대한 파생 프레임 조건을 제공합니다 . 소유자 의 메소드 가 호출 되지 않으면 상태가 변경되지 않습니다 .영형영형영형영형

대조적으로, 선형 유형 및 분리 로직과 같은 구조적 시스템은 자원 의 아이디어에 의존 합니다 . 힙의 각 영역은 리소스이며 리소스가 없으면 만질 수 없습니다. 이것은 프레임 조건을 매우 쉽게 만듭니다 : 항상 고정합니다.

한가지 피상적 인 차이 (그러나, 오랫동안 저를 혼란스럽게 했음)는 소유권 유형이 유형이고 분리 논리가 프로그램 논리라는 점이었습니다. 운좋게도 소유권 유형은 유형 이론적 환경에서 태어 났지만 사람들은 이러한 아이디어를 프로그램 논리에도 적용했습니다.

내가 알고있는 두 가지 이론적 작업은 Bannerjee와 Naumann (및 그들의 학생들)이 지역 논리 에 대한 연구에서 체계적으로 활용 한 동적 프레임 에 대한 Kassios의 연구 이다.

내가 이해할 때, 그들의 기본적인 접근 방식은 Hoare 논리를 취하는 것입니다.

  1. 객체와 영역을 연결하는 데 사용하는 새로운 유형의 영역 변수를 추가합니다.
  2. 터치 영역을 읽고 쓰는 영역을 추적하기 위해 효과 시스템을 Hoare 로직에 추가하십시오.
  3. 어설 션이 프레임을 존중하는지 여부를 결정하려면 효과를 사용하십시오. 그렇다면 프레임을 만들 수 있고 그렇지 않으면 프레임을 만들 수 없습니다.

각 접근법에는 장점과 단점이 있습니다.

  • 소유권은 프레임 조건을 계산해야하기 때문에 구조적 접근 방식보다 프레임 속성을 사용하기가 훨씬 편리하지 않습니다.

  • 반면 DAG의 알고리즘은 포인터 구조에서 풋 프린트를 분리 할 수 ​​있기 때문에 소유권 스타일에서 더 귀납적 인 증명을 지원합니다. 분리 스타일 사양에서 자연스러운 것은 스패닝 트리에 유도 불변성을 제공하는 것입니다. 그러나 알고리즘이 계산하는 스패닝 트리가 항상 변하지 않는 트리와 다를 경우 상처를 입을 수 있습니다.

필자의 일반적인 의미는 명령형 프로그램의 거의 모든 명령에 대해 프레임 속성이 필요하기 때문에 소유권보다 분리가 사용하기 쉽다는 것입니다. (Dave Naumann은 주장 논리가 기존의 FOL로 남아 있기 때문에 영역 논리가 자동화에 더 적합하다고 주장하므로 상용 정리 이론가와 SMT 솔버를 사용할 수 있습니다.)

편집 : 방금 Matt Parkinson과 Alex Summers의 분리 논리와 암시 적 동적 프레임의 관계에서 다음 두 가지 방법을 통합하는 논리를 제공한다고 주장하는 논문을 찾았습니다 .


당신의 통찰에 감사드립니다, 닐 그러나 나는 차이점 보다는 두 패러다임 사이의 관계 에 대해 궁금해 하고 있습니다 . 지금은 질문을 계속 열어 두겠습니다.
Uday Reddy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.