소유권 유형과 분리 로직은 비슷한 목표를 가지고 있으며 소유권과 별칭을 제어합니다. 모듈 식 사양을 작성하는 기능도 추가해야 할 것입니다.
소유권 유형과 분리 논리 간의 관계에 대해 알려진 것은 무엇입니까?
소유권 유형과 분리 로직은 비슷한 목표를 가지고 있으며 소유권과 별칭을 제어합니다. 모듈 식 사양을 작성하는 기능도 추가해야 할 것입니다.
소유권 유형과 분리 논리 간의 관계에 대해 알려진 것은 무엇입니까?
답변:
나는 최근에 소유권 유형에 대한 설문 조사를 마쳤으며 두 주제 간의 관계에 대해 거의 논의하지 못했습니다. 내가 만난 가장 가까운 세 가지 논문은 다음과 같습니다.
양 자오와 존 보이 랜드. 소유권 유형에 대한 기본 권한 해석 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)과 다른 사람들과 함께 얼마 전에 쓴 논문에 대해보다 공식적이고 체계적인 것으로 볼 수 있습니다.
차이점을 이해하는 방법은 소유권 유형 이 개체 그래프의 모양을 제한하고 분리 구조와 같은 구조적 시스템 이 힙에 액세스 할 수있는 권한을 관리한다는 것 입니다.
소유권 유형에 대한 최초의 작업에서 아이디어는 소유자 의 불변을 지배자 로 유지하는 것입니다 . 오브젝트 된다 지배 오브젝트가 까지의 루트 세트의 모든 경로 경우, 포함 . 따라서 는 에서만 도달 할 수 있습니다 . 따라서 시스템은 클래스 선언이 소유자에 의해 매개 변수화되도록 설계 되었으며이 사실은 대한 파생 프레임 조건을 제공합니다 . 소유자 의 메소드 가 호출 되지 않으면 상태가 변경되지 않습니다 .
대조적으로, 선형 유형 및 분리 로직과 같은 구조적 시스템은 자원 의 아이디어에 의존 합니다 . 힙의 각 영역은 리소스이며 리소스가 없으면 만질 수 없습니다. 이것은 프레임 조건을 매우 쉽게 만듭니다 : 항상 고정합니다.
한가지 피상적 인 차이 (그러나, 오랫동안 저를 혼란스럽게 했음)는 소유권 유형이 유형이고 분리 논리가 프로그램 논리라는 점이었습니다. 운좋게도 소유권 유형은 유형 이론적 환경에서 태어 났지만 사람들은 이러한 아이디어를 프로그램 논리에도 적용했습니다.
내가 알고있는 두 가지 이론적 작업은 Bannerjee와 Naumann (및 그들의 학생들)이 지역 논리 에 대한 연구에서 체계적으로 활용 한 동적 프레임 에 대한 Kassios의 연구 이다.
내가 이해할 때, 그들의 기본적인 접근 방식은 Hoare 논리를 취하는 것입니다.
각 접근법에는 장점과 단점이 있습니다.
소유권은 프레임 조건을 계산해야하기 때문에 구조적 접근 방식보다 프레임 속성을 사용하기가 훨씬 편리하지 않습니다.
반면 DAG의 알고리즘은 포인터 구조에서 풋 프린트를 분리 할 수 있기 때문에 소유권 스타일에서 더 귀납적 인 증명을 지원합니다. 분리 스타일 사양에서 자연스러운 것은 스패닝 트리에 유도 불변성을 제공하는 것입니다. 그러나 알고리즘이 계산하는 스패닝 트리가 항상 변하지 않는 트리와 다를 경우 상처를 입을 수 있습니다.
필자의 일반적인 의미는 명령형 프로그램의 거의 모든 명령에 대해 프레임 속성이 필요하기 때문에 소유권보다 분리가 사용하기 쉽다는 것입니다. (Dave Naumann은 주장 논리가 기존의 FOL로 남아 있기 때문에 영역 논리가 자동화에 더 적합하다고 주장하므로 상용 정리 이론가와 SMT 솔버를 사용할 수 있습니다.)
편집 : 방금 Matt Parkinson과 Alex Summers의 분리 논리와 암시 적 동적 프레임의 관계에서 다음 두 가지 방법을 통합하는 논리를 제공한다고 주장하는 논문을 찾았습니다 .