Core Concepts
내재적 정의는 재귀를 피하고 지역 조건을 만족하는 모나딕 맵을 사용하여 데이터 구조를 정의하는 강력한 메커니즘이다. 이를 통해 예측 가능한 검증 방법론을 제공하여 엔지니어가 모나딕 맵을 업데이트하고 결정 가능한 논리로 검증을 수행할 수 있다.
Abstract
이 논문은 데이터 구조를 정의하는 새로운 패러다임인 내재적 정의를 제안한다. 내재적 정의는 재귀 대신 각 위치에 대한 모나딕 맵과 지역 조건을 사용하여 데이터 구조를 정의한다. 이를 통해 예측 가능한 검증 방법론을 제공할 수 있다.
저자들은 먼저 내재적 정의의 개념을 소개한다. 내재적 정의는 각 객체에 연관된 모나딕 맵과 이 맵들이 만족해야 하는 지역 조건으로 구성된다. 이러한 내재적 정의를 사용하면 데이터 구조의 유지 관리를 위한 예측 가능한 검증 방법론을 개발할 수 있다.
저자들은 Fix-What-You-Break(FWYB) 검증 방법론을 제안한다. FWYB 방법론은 다음과 같은 3단계로 구성된다:
존재 양화사 제거: 엔지니어가 사전 상태의 모나딕 맵을 수정하여 사후 상태의 맵을 계산하도록 한다.
보편 양화사 완화: 깨진 객체 집합(Br)을 도입하여 지역 조건이 성립하지 않는 객체들을 추적한다.
잘 동작하는 프로그램을 위한 보편 양화사 제거: 엔지니어가 Br 집합을 올바르게 유지하도록 요구하여 보편 양화사를 완전히 제거한다.
이러한 FWYB 방법론을 통해 데이터 구조 유지 관리 프로그램의 검증을 결정 가능한 논리로 수행할 수 있다.
저자들은 다양한 고전적인 데이터 구조에 대한 내재적 정의와 이를 활용한 프로그램 검증 사례를 제시한다. 또한 Linux의 I/O 스케줄러에 사용되는 중첩 데이터 구조에 대한 내재적 정의와 검증 사례도 보여준다.