はじめに

Egisonは,「人間の頭の中の認識を,コンピュータ向けに翻訳することなしに,表現できる言語を作りたい」という動機で作られたプログラミング言語である. より幅広いアルゴリズムの簡潔な記述を可能にする新しいプログラミング言語は,既知のコンピュータ科学の問題のプログラミングを簡単にするだけでなく,従来プログラミングが難しいために敬遠されていた問題を扱いやすくし,コンピュータ科学の扱う範囲を広げる可能性を持つため重要である.

Egisonに実装されているこれらのアイデアのうち,最初に実装された機能は本書の第一部の主題であるパターンマッチである. Egisonのパターンマッチの特徴は,ユーザーにより拡張可能でかつ,非線形パターン(パターン変数に束縛した値を同じパターン内で参照するパターン)をバックトラッキングにより効率的に処理することである. 本書の第一部は,Egisonを通して提唱されているパターンマッチ指向プログラミングというプログラミング・パラダイムをできるだけコンパクトに紹介することを目的として執筆された. パターンマッチまわりのEgisonの構文と,それらの構文を使ったプログラミングテクニックを紹介する.

このパターンマッチを応用して,Egisonには数式処理システムが実装されている. この数式処理システムには,任意のユーザー定義関数に対してテンソルの添字記法が適用できるという特徴がある. この機能によって,数学のなかでも特に計算が大変な微分幾何という分野に現れる計算を紙の上の数式に近い形でプログラムとして記述できる. そのほかにも実験的な新しい機能がEgison上の数式処理システムには実装されており,第二部はこれらについて紹介する.

本書がきっかけとなって,プログラミング言語,とくにパターンマッチや数式処理システムの研究をする研究仲間が読者の中から現れてくれたらとてもうれしい.

2021年5月13日

江木 聡志

この本を別の言語で読む: English, 日本語