ワールドによるプログラミング

木下 修司 (1251036)


 構成的型理論に基づくプログラミングは高い表現力を持つことで知られるが、与えられた入力と出力以外の「副作用」と呼ばれる処理の表現は大きな課題であった。近年の研究では、構成的型理論の上でワールドとワールドマップという概念を利用するプログラミングが提案されている。ワールドの上でプログラムを帰納的に定義することで、副作用が表現できるだけでなく、ワールドマップという写像によって異なるワールド上のプログラムを結合することで、オブジェクト指向プログラミングに代わる新しいプログラミングのパラダイムになりうる可能性も示唆されている。

本研究では、構成的型理論の上でワールドとワールドマップを利用するプログラミングの有効性を、圏論的定式化と、命令型言語との能力の比較という2つの側面から研究した。圏論的定式化では、まず既存研究をAgda言語によって形式化した。その結果、既存研究では曖昧であった圏とE-圏の区別を明確にし、ワールドとワールドマップがなすのは圏ではなくE-圏であることを示した。そして、ワールドマップのE-圏Wを構成するために必須の公理の証明を新たに記した。さらに、E-圏WにおいてE-終対象、E-積を構成した。命令型言語との能力の比較では、構成的型理論の上でワールドを利用するプログラミングが命令型言語に相当する表現力を持つことを示した。具体的には、基本的な命令を持つ命令型プログラミング言語の構文と意味を定義し、その言語のワールドの枠組みによる解釈を構成した。そして、その解釈が元のプログラムの意味を保つことを証明した。

本発表では、まずワールドとワールドマップによるプログラミングを概説し、その上で研究成果を述べる。