순수 기능 프로그래밍 언어에 대한 주석이 달린 공식 검증 시스템이 있습니까?


25

ACSL (Ansi C Specification Language)은 C 코드를 공식적으로 검증 할 수있는 특수 주석으로 주석이 달린 C 코드의 스펙입니다.

나는 그것을 보지 않았지만 ACSL 검증기에 사용되는 공식적인 방법 은 Hoare Logic과 유사하다고 생각합니다. 그러나 Haskell과 같은 순수한 기능 언어의 경우 형식 검증에 어떤 형식의 형식이 사용 될지 상상할 수 없습니다.

ACSL 과 유사 하지만 순수한 기능적 언어를 위해 누군가를 만들었 습니까? 그렇지 않은 경우 기능 언어에 대한 사양 주석 스타일 공식 검증에 대한 연구가 있습니까?

많은 언어 (Agda, Idris 등)가 지원하는 의존적 타이핑이 있다는 것을 알고 있지만 Haskell 의존적 타이핑은 (읽을 수 없습니까?) 유형 마법사를 수행하지 않으면 어렵습니다. 이를 염두에두고 Haskell은 Agda 및 Idris보다 라이브러리 지원이 훨씬 뛰어 나기 때문에 이러한 형식적인 공식 검증 시스템이 유용 할 것으로 생각하지만 이에 대한 연구가 이루어 졌는지 여부는 알 수 없습니다.

답변:


13

혼다와 요시다

(아마도) 순전히 기능적인 언어를위한 Hoare 논리를 개척했습니다. 이 작업은 다음과 같이 Hennessy-Milner 논리와 Milner의 함수 인코딩 프로세스를 기반으로합니다.

다른 답변에서 언급 한 Régis-Gianas 등의 작업은 Honda / Yoshida의 첫 번째 작업과 유사합니다. 이는 효과적인 ML 스타일 언어로 확장되었습니다.

언급 된 논리는 관찰 적으로 완료된 것입니다. 즉, 운영 및 논리 의미가 일치합니다. Arthur Charguéraud 는 Coq.의 Hoare 스타일의 기능 프로그램을 검증하는 작업에이 완성품을 사용했습니다.


15

종속 유형이 아닌 유형 세분화 작업을 허용하는 Liquid Haskell 을 확인하고 싶을 수도 있습니다. 유형 세분화는 다양한 데이터 유형의 주민의 Hoare 스타일 속성을 표현할 수있는 제한된 논리 언어로 볼 수 있습니다. 또 다른 가능한 후보는 유사한 구성을 제공 하는 language 입니다.F

정제 유형과 ACSL 유사 표기법 사이에는 밀접한 관계가있는 것 같습니다.

마지막으로 Agk와 Idris를 Haskell로 컴파일 할 수 있으므로 사용자에게 유용한 프로그래밍 언어 (특히 Idris)를 제공하는 것이 목표입니다. 너무 큰 어려움없이 Haskell 라이브러리를 Idris 코드에 통합 할 수 있다고 생각합니다.


너무 많은 어려움없이 -실제로. Idris는 기본적으로 엄격하며 Haskell은 게으 릅니다. 그 자체만으로도 큰 문제가됩니다. Hasdri와의 호환성은 Idris 설계에서 절대 우선 순위가 아니 었습니다.
Bartek Banachewicz

충분합니다. Agda는 기본적으로 종료를 확인하므로 엄격 성과 같은 것은 이론적 으로 문제가되지 않습니다 . 물론 런타임은 크게 다를 수 있습니다.
cody


8

올해의 ICFP 에는 Haskell의 정제 유형에 대한 논문이 있습니다 . 이 논문은 전체 Hoare 논리가 아닌 종료 검사에 대해 다루지 만, 이것이 바람직한 방향으로 시작되기를 바랍니다.

이 논문의 관련 작업 섹션에는 Xu, Peyton-Jones 및 Claessen의 Haskell 및 Sonnex, Drossopoulou 및 Eisenbach의 Zeno 및 Vytiniotis, Peyton-Jones, Claessen 및 Rosen 's Halo에 대한 정적 계약 확인 과 같은 일부 포인터가 포함되어 있습니다 .


1

계약의 소프트 검증에 관한 우리의 작업은 OOPSLA 2012ICFP 2014 에서 관련 되어 있으며, 계약을 ACSL 사양과 매우 유사한 것으로 작성한 다음 정적으로 계약을 확인하거나 런타임에 동적 점검을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.