デジタル人材の育成

未踏IT人材発掘・育成事業:2011年度採択プロジェクト概要(江木PJ)

1.担当プロジェクトマネージャー

原田 康徳(日本電信電話株式会社 NTTコミュニケーション科学基礎研究所 主任研究員)

2.採択者氏名

  • チーフクリエータ
    江木 聡志(東京大学大学院 情報理工学系研究科 コンピュータ科学専攻 萩谷研究室修士2年)

3.採択金額

  • 1,792,000円

4.テーマ名

  • プログラミング言語Egisonのコンパイラの開発

5.関連Webサイト

  • http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/index-j.html

6.申請テーマ概要

強力なパターンマッチ機能をもつプログラミング言語Egisonのコンパイラを提案する。
Egisonは提案者が設計、開発したプログラミング言語である。(http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/index-j.html)
Egisonを使うと、正規形を持たないデータ、例えば、集合や多重集合などといったコレクションや、また環や群といった代数構造などのパターンマッチを直感的に表現することができる。
正規形というのは、同じデータを表現する1つの決まった標準的な形のことをいう。
これらの正規形を持たないデータ型のデータのパターンマッチを行うには、一度これらのデータを正規形を持つデータ型として捉え直して、パターンマッチを行うことが必要である。
例えば、既存のプログラミング言語では集合のパターンマッチを行うさい、これをリストとして捉え直してパターンマッチを行う。
多くのプログラマは、この煩雑な作業を当たり前のことだと認識しているが、これは実はかなりのプログラミングの際の潜在的な精神的なストレスになっている。
Egisonでは、正規形を持たないデータ型に対してのパターンマッチの一般的な方法をモジュール化する方法を用意することによってこの問題を解決した。
Egisonのインタプリタは既に実装されていて、公開されている。EgisonはHackage(Haskellで書かれたソフトウェアのためのパッケージシステム)のパッケージとして配布されていて、Haskellの環境さえ整っていれば、誰でも無料で簡単にインストールすることができる。(http://hackage.haskell.org/package/egison)インタプリタのソースコードは、GitHubで公開されている。(https://github.com/egisatoshi/egison)
本提案の目標は、このEgisonのコンパイラを作成することによって、この強力な表現能力を持ったプログラミング言語の実用に耐えうる処理系を実現することである。

7.採択理由

このような新しいプログラミング言語の提案は、よい処理系を作ることも重要であるが、言語の特徴を広く認知させ、作者の想像を超えた使われ方をしてもらうことが、より重要である。
わかりやすいマニュアル、実施例など作成が必要である。応用を探るワークショップを開催してもよいかもしれない。
この言語の機能は10年後には世の中に当たり前になっているようなものを目指してほしい。