Symbolic Systems シンボリックシステムズ

自己紹介

大学で初めて行った研究が任意の文脈自由文法を対象としたコンパイラ・コンパイラの研究。通常のプログラミング言語を対象とすれば、LL(1)もしくはLR(1)で十分で、この文法クラスに限定すればYACCという優れたツールが同じ頃、すでに存在していた。コンパイラ・コンパイラの流れで、卒業論文はプログラミング言語の形式的意味論。ただし、実際に、この記述からコンパイラの構文解析部を自動生成するため、現実的な選択として文法とその各節に属性を付与した属性文法(D.Knuth)を使用。この文法に基づいて生成されたコンパイラを使い、簡単なプログラムをコンパイル。実行するところまで実装。

大学院では、Lisp上で同じアイデアを実現し、研究室で主力だったオブジェクト指向言語のインプリメントに利用。また、同時に、属性文法の実行可能記述性に注目し、文法プログラミングのアイデアを思いつく。具体的には制約プログラミングへの応用を考えたが、あまり成果なくこのアイデアは未完のまま終了。

民間企業研究所では、人工知能プロジェクトにおいて、フレームベースの知識記述言語の設計、インプリメントに携わり、これを使ったエキスパートシステムを作成。VLSIの設計支援等に使われる。同時に、Lisp関数でGUI環境を対話的に構成できる環境を開発。CommonLisp+X-Windowが登場するのは、この数年あと。当時、世界でも珍しいLisp専用マシンを使っていた。このLispマシンを開発した会社がSymblics社。当社のドメイン名symbolics.jp はこれにちなむ。

大学に戻った後は、スーパーコンピュータにおける High Performance Symbolic Computing(HPSC)に興味を持つ。特に、すぐれた記述力を持つMathematicaをHPCの世界で使いたいと考えてきた。大学が所有するスーパーコンピュータ上で、最大128コア環境でgridMathematicaを使用。併せて、加速システムとして、ClearSpped社のBLASアクセラレータ、およびIntel社のIntelMKLの評価も行う。同時期、Windows Compute Clusterプロジェクトに参加し、同じように、gridMathematicaの評価をこのwinCCSでも行う。

そして、現在はMPI環境をMathematicaでも使えるようにしたSEM(Supercomputing Engine for Mathematica)を使い、高性能記号計算(High Performance Symbolic Computing)の環境整備に力を注いでいる。

なお、HPSCの応用として、テキスト、音声、画像ありとあらゆるものの類似性判定ルール生成エンジンを開発(壮大!)中。