이 논문은 타입 검사와 제약 해결을 결합하여 자동화된 소프트웨어 검증을 향상시키는 방법을 제시한다.
먼저 {log}라는 제약 논리 프로그래밍(CLP) 언어와 집합 이론 기반 만족성 해결기에 대한 타입 시스템과 타입 검사기를 정의한다. 타입 검사기는 컴파일 시간에 오류를 잡아내고, 제약 해결기는 런타임에 오류를 잡아낸다. 이 두 가지 방식을 결합하면 프로그램 실행 전에 오류를 찾아낼 수 있다.
타입 시스템은 정수, 집합, 관계 등의 타입을 지원한다. 타입 안전성 정리를 통해 {log}의 연산 의미론이 타입을 보존한다는 것을 증명한다.
구현 측면에서 타입 검사기는 4단계로 이루어져 있다. 첫 번째 단계에서는 타입 선언을 분석하고, 두 번째 단계에서는 논리 구조를 분석한다. 세 번째 단계에서는 각 원자 제약의 타입을 검사하고, 네 번째 단계에서는 제약 인자의 타입을 검사한다.
이 접근법은 두 개의 산업 사례 연구에 적용되었다. 하나는 착륙 장치 시스템 문제이고, 다른 하나는 Android 권한 시스템 모델이다. 이 사례 연구들은 타입 검사와 제약 해결의 결합이 실제 문제를 해결하는 데 효과적임을 보여준다.
toiselle kielelle
lähdeaineistosta
arxiv.org
Syvällisempiä Kysymyksiä