卒業論文要旨

オブジェクト指向言語におけるAlgebraic Effectsの実装

野口 龍 (2020年2月)

Algebraic EffectとEffect Handlerは計算エフェクト(Computational Effect)を取り扱うための方法で、近年、純粋関数型言語を始めとしたプログラミング言語にて副作用のある計算等を取り扱うための方法として採用されつつある。この方法では計算エフェクトを利用する箇所と実際の処理を行う場所を分離しているが、この設計により処理の再利用性が高まる。また、コルーチンや非同期処理などの制御フローを実装することもできる。

Algebraic Effectの処理の再利用性や様々な処理を実装できる柔軟性に着目し、オブジェクト指向言語へのAlgebraic Effectの適用に関する研究が行われている。しかし、適用対象の言語が未だ限られており、また言語により実装手法も様々である。

そこで本研究では、オブジェクト指向言語へのAlgebraic Effectの広い適用性を明らかにする一助をしつつ、C#でのAlgebraic Effectの有用性を示す目的で、オブジェクト指向言語のひとつであるC#にAlgebraic Effectを実装を試みた。

結果、機能に制限があるがAlgebraic EffectをC#のライブラリとして実装することができ、それを用いてC#プログラミングにおけるAlgebraic Effectの有用性を評価することができた。