Skip to main content
QUICK REVIEW

[논문 리뷰] Fibred Computational Effects

Danel Ahman|arXiv (Cornell University)|2017. 10. 06.
Logic, programming, and type systems참고 문헌 94인용 수 9
한 줄 요약

이 논문은 새로운 계산적 Σ형식과 섬세한 적응 모델의 범주론적 프레임워크를 통해 마틴- Lö프 유형 이론과 계산적 효과를 통합하는 핵심 효과적 의존형 유형 언어인 eMLTT를 소개한다. 이는 효과적 의존형 유형에 대해 타당하고 완전한 의미론을 제공하며, 유형 기반의 처리를 통해 대수적 효과와 핸들러를 확장하여 term-level 핸들러 정의에서 발생하는 타당성 문제를 해결한다.

ABSTRACT

Dependent types provide a lightweight and modular means to integrate programming and formal program verification. In particular, the types of programs written in dependently typed programming languages (Agda, Idris, F*, etc.) can be used to express specifications of program correctness. These specifications can vary from being as simple as requiring the divisor in the division function to be non-zero, to as complex as specifying the correctness of compilers of industrial-strength languages. Successful compilation of a program then guarantees that it satisfies its type-based specification. While dependent types allow many runtime errors to be eliminated by rejecting erroneous programs at compile-time, dependently typed languages are yet to gain popularity in the wider programming community. One reason for this is their limited support for computational effects, an integral part of all widely used programming languages, ranging from imperative languages, such as C, to functional languages, such as ML and Haskell. For example, in addition to simply turning their inputs to outputs, programs written in these programming languages can raise exceptions, access computer's memory, communicate over a network, render images on a screen, etc. Therefore, if dependently typed programming languages are to truly live up to their promise of seamlessly integrating programming and formal program verification, we must first understand how to properly account for computational effects in such languages. While there already exists work on this topic, ingredients needed for a comprehensive theory are generally missing. For example, foundations are often not settled; available effects may be limited; or effects may not be treated systematically. In this thesis we address these shortcomings by providing a comprehensive treatment of the combination of dependent types and general computational effects.

연구 동기 및 목표

  • 현대 프로그래밍 언어에서 핵심적인 의존형 유형과 계산적 효과를 통합하는 포괄적인 이론을 개발하는 것.
  • 각각 수학적으로 성숙해졌음에도 불구하고, 효과적 의존형 유형에 대한 엄밀하고 통합된 기초의 부족을 해결하는 것.
  • 상태, I/O, 예외와 같은 효과를 의존형 유형을 사용하여 체계적으로 기술할 수 있도록 하는 것.
  • 핸들러 기반의 효과 관리에서 발생하는 타당성 문제를 해결하기 위해 핸들러의 유형 기반 처리를 도입하는 것.
  • 일般적 재귀와 대수적 효과를 포함한 전체 언어에 대해 범주론적 의미론을 제공하는 것.

제안 방법

  • 값과 효과적 계산을 명확히 분리한 의존형 이론을 확장한 핵심 언어인 eMLTT를 제안한다.
  • 순차적 구성에서의 유형 의존성을 통일적으로 다룰 수 있도록 계산적 Σ형식을 도입한다.
  • 분할 폐쇄 comprehension 범주(의존형 유형을 위한 것)와 동반관계(계산적 효과를 위한 것)를 결합한 섬세한 적응 모델을 범주론적 프레임워크로 정의한다.
  • 사용자가 정의한 대수형 유형을 사용한 새로운 계산 유형을 통해 핸들러의 유형 기반 처리를 개발한다. 이는 캐리어 유형과 연산의 가족을 쌍으로 묶는다.
  • Plotkin과 Pretnar의 효과 이론의 의존형 유형 일반화를 사용하여 eMLTT에 섬세한 대수적 효과를 확장한다.
  • term-level 핸들러가 유형 기반 처리로부터 유도될 수 있음을 보여주며, 효과적 프로그램에 대한 타당한 추론을 가능하게 한다.

실험 결과

연구 질문

  • RQ1어떻게 의존형 유형과 계산적 효과를 단일 형식 언어에서 체계적으로 통합할 수 있는가?
  • RQ2어떤 범주론적 모델이 효과적 의존형 유형에 대해 타당하고 완전한 해석을 지원하는가?
  • RQ3대수적 효과의 핸들러를 의존형 유형 환경에 안전하게 통합할 수 있는가? 이는 프로그램 등가성을 해치지 않는다.
  • RQ4계산적 Σ형식은 효과적 계산에서의 유형 의존성을 통일적으로 다룰 수 있는가?
  • RQ5섬세한 대수적 효과는 의존형 유형 환경에서 위치 기반 스토어 유형과 업데이트 모나드를 어떻게 포괄할 수 있는가?

주요 결과

  • 계산적 Σ형식은 효과적 계산에서의 유형 의존성에 대해 통일된 처리를 가능하게 하여, 의존형 유형과 효과를 통합하는 데 핵심적인 과제를 해결한다.
  • 섬세한 적응 모델은 eMLTT에 대해 타당하고 완전한 범주론적 의미론을 제공하며, 의존형 유형과 계산적 효과의 모델을 통합한다.
  • 사용자가 정의한 대수형 유형을 통한 유형 기반 핸들러 처리 방식은 term-level 핸들러 정의에서 발생하는 타당하지 않은 프로그램 등가성을 방지한다.
  • 이 접근법은 상태와 위치 기반 유형, 업데이트 모나드를 포함한 효과의 체계적이고 대수적 기술을 가능하게 한다.
  • 유형 기반 핸들러 프레임워크는 기존의 term-level 핸들러를 파생 구조로 복원할 수 있을 정도로 일반적이다.
  • 언어와 의미론이 집합의 가족 분리와 Lawvere 이론을 기반으로 한 모델에서 타당하게 해석 가능하다는 것이 입증되었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.