Skip to main content
QUICK REVIEW

[논문 리뷰] A Categorical Programming Language

Tatsuya Hagino|arXiv (Cornell University)|2020. 10. 11.
Logic, Reasoning, and Knowledge참고 문헌 23인용 수 101
한 줄 요약

이 논문은 F,G-dialgebras를 사용한 데이터 타입의 범주론적 프레임워크(범주론적 데이터 타입, CDT)를 제시하고, 범주론적 명세 언어(CSL)를 도입하며, 데이터 타입과 범주론적 프로그래밍 언어(CPL)를 정의하고, Tait의 방법을 통해 계산의 종료를 증명한다.

ABSTRACT

A theory of data types based on category theory is presented. We organize data types under a new categorical notion of F,G-dialgebras which is an extension of the notion of adjunctions as well as that of T-algebras. T-algebras are also used in domain theory, but while domain theory needs some primitive data types, like products, to start with, we do not need any. Products, coproducts and exponentiations (i.e. function spaces) are defined exactly like in category theory using adjunctions. F,G-dialgebras also enable us to define the natural number object, the object for finite lists and other familiar data types in programming. Furthermore, their symmetry allows us to have the dual of the natural number object and the object for infinite lists (or lazy lists). We also introduce a programming language in a categorical style using F,G-dialgebras as its data type declaration mechanism. We define the meaning of the language operationally and prove that any program terminates using Tait's computability method.

연구 동기 및 목표

  • F,G-dialgebras를 기본 개념으로 삼아 데이터 타입의 통일되고 범주론적 구성론을 제안한다.
  • 범주, 펀ctors, 자연 변환, 및 분해기를 설명하기 위한 범주론적 명세 언어(CSL)을 개발한다.
  • adjoint 기반 선언으로 CDT를 정의하고 표준 데이터 타입이 범주적으로 어떻게 나타나는지 보인다.
  • primitive 데이터 타입이나 제어 구조가 없는 CPL을 도입 및 형식화하고, 데이터 타입과 제어가 범주론적으로 정의되며 종료를 검증한다.
  • F,G-다이얼게라를 통해 CDT를 의미적으로 접지하고 형식적 CSL 의미를 제공하기 위한 명세 언어를 제공한다.

제안 방법

  • CDT 데이터 타입을 보편 대수 및 도메인 이론 아이디어를 확장하는 F,G-dialgebras로 정의한다.
  • 범주, 펀ctors, 자연 변환, 그리고 분해기를 포함하는 알제브릭 명세를 범주로 확장하는 CSL(Categorical Specification Language)을 제시한다.
  • CDT에서 인접 관계(adjunction)를 통해 곱, 합공사, 지수, 자연수 객체가 자연스럽게 도출되는 방법을 보인다.
  • 감소 규칙과 의미론을 갖는 CPL을 기술하며, 데이터 타입과 제어 구조가 F,G-dialgebras를 통해 선언되고 종료를 검증한다.
  • CDT를 의미적으로 접지하기 위한 F,G-대수와 형식 CSL 의미를 기반으로 하는 카테고리 명세 언어를 제공한다.

실험 결과

연구 질문

  • RQ1데이터 타입을 특히 F,G-dialgebras를 통해 범주론적으로 체계적으로 어떻게 조직할 수 있는가?
  • RQ2자연수, 리스트, 무한 리스트와 같은 일반 데이터 타입을 정의하기 위해 카테고리, 펀ctor, 자연 변환, 그리고 분해기를 명세하고 조작할 수 있는가?
  • RQ3 primitive 데이터 타입이나 제어 구조 없이도 범주론적으로 선언을 통해 의존하는 프로그래밍 언어를 구축할 수 있는가?
  • RQ4 이러한 범주 프로그래밍 언어의 연산 의미론과 종료 특성은 무엇인가?
  • RQ5 CSL은 CDT의 형식적 의미를 어떻게 지원하며 CDT가 기존의 대수적 명세 및 도메인 이론적 접근법과 어떻게 관련되는가?

주요 결과

  • CDT는 F,G-dialgebras와 adjunction 기반 구성을 통해 전통적 데이터 타입(예: 자연수, 리스트, 무한 리스트)을 정의할 수 있다.
  • 곱, 합공, 지수, 자연수 객체는 adjunction을 이용한 범주론적 정의에서 자연스럽게 도출되어 데이터 타입의 통일된 처리를 가능하게 한다.
  • 대칭형 프레임워크는 초기(대수)와 최종(코알제라) 구성을 모두 허용하여 CDT 내에서 유한 및 무한 데이터 구조를 가능하게 한다.
  • 프로그램이 감소 규칙을 갖는 동형사(모프)로 구성되고 종료가 Tait의 계산 가능성 방법으로 증명되는 CPL이 제시된다.
  • CSL은 펀ctor, 자연 변환, 분해기를 갖는 카테고리를 기술하기 위한 형식적 의미의 기초를 제공한다.

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

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

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

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