Skip to main content
QUICK REVIEW

[論文レビュー] A Categorical Programming Language

Tatsuya Hagino|arXiv (Cornell University)|Oct 11, 2020
Logic, Reasoning, and Knowledge参考文献 23被引用数 101
ひとこと要約

この論文は、F,G-dialgebras を用いるデータ型のカテゴリ論的フレームワーク(CDT)を提示し、カテゴリ仕様言語(CSL)を導入し、カテゴリ型データを定義するデータ型とカテゴリ型プログラミング言語(CPL)を定義し、計算の停止性を Tait’s computability method によって証明する。

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 を基礎概念として用いたデータ型の統一的でカテゴリ論的な組織化を提案する。
  • カテゴリ、函子、自然変換、および因数分解子を記述するカテゴリ仕様言語(CSL)を開発する。
  • Adjoint に基づく宣言を用いて CDT(Categorical Data Types)を定義し、標準的なデータ型が圏論的にどのように生起するかを示す。
  • 傍系を用いたデclarations によりデータ型と制御をカテゴリ的に定義する primitiv データ型や制御構造を持たないカテゴリ型プログラミング言語(CPL)を導入・形式化する。
  • CPL の計算に対する意味論と停止性の証明を Tait’s computability method を用いて提供する。)

提案手法

  • CDT データ型を universal algebra やドメイン理論のアイデアを拡張する F,G-dialgebras として定義する。
  • カテゴリ、函子、自然変換、および factorizers を拡張するアルジェブラ的仕様をカテゴリへ拡張する CSL(Categorical Specification Language)を提示する。
  • CDT において、積、余積、指数、自然数対象が adjunctions から自然に生じることを示す。
  • F,G-dialgebras によってデータ型と制御を宣言し、停止性を検証する reduction ルールと意味論を持つ CPL を記述する。
  • CDT を意味的に地固めするために、カテゴリの仕様言語を提供し、F,G-algebras と正式 CSL 意味論を用いて CDT を定式化する。

実験結果

リサーチクエスチョン

  • RQ1カテゴリ論を用いてデータ型を系統的に整理するにはどうすればよいか、特に F,G-dialgebras を介してか。
  • RQ2自然数、リスト、無限リストのような共通データ型を定義するために、カテゴリ、函子、自然変換、および factorizer を指定し操作できるか。
  • RQ3原始データ型や制御構造を持たず、カテゴリ的宣言に依拠してカテゴリ的にプログラミング言語を構築できるか。
  • RQ4このようなカテゴリ型プログラミング言語の計算の意味論と停止性はどのような性質を持つか。
  • RQ5CSL は CDT の正式な意味論をどのように支え、CDT は従来の代数仕様およびドメイン理論的アプローチとどのように関係するか。

主な発見

  • CDT(Categorical Data Types)は、F,G-dialgebras と adjunctions に基づく構成を用いて、自然数、リスト、無限リストなどの伝統的なデータ型を定義できる。
  • 積、余積、指數、自然数対象は adjunctions を用いた圏論的定義から自然に現れ、データ型の統一的な取り扱いを可能にする。
  • 対称的な枠組みは初出の代数工学(algebra)と終端の構造(coalgebra)の両方をサポートし、CDT 内で有限データ構造と無限データ構造の両方を可能にする。
  • CPL が提示され、プログラムは縮約規則を持つ射であり、停止性はTait’s computability method により証明される。
  • CSL はカテゴリを函子、自然変換、factorizers を記述するための正式な意味論の基礎を提供し、CDT を記述する。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。