香川研究室では、主に次のような研究を行っています。
コンピューターへの指令であるプログラムを書くためには、 プログラミング言語という人工的に設計された言語を使います。 コンピューターが魔法の杖(ツエ)、 プログラムが魔法の呪文だとすれば、プログラミング言語は呪文体系です。
しかし、魔法の杖と違って、コンピューターができることは突き詰めてしまうと 「足し算をすること」「0 かどうか判定すること」などなど、とても単純なことです。 そして、プログラミング言語が魔法の呪文と違うところは、 指令の並びであるプログラムを部品化して、 何度でも再利用できることです。個々の指令はすごく単純でも、それを組み立てて部品化することで、 ものすごく複雑なことも、簡単に実行させることができるのです。
これまでに、多くのプログラミング言語が設計され、使われています。 プログラミング言語によって、得意分野が異っていて、使い分ける必要があるからです。 (プログラミング言語の違いの一つは、プログラムの部品化の考え方の違いです。)
香川研究室では、信頼性の高いプログラムを、楽に早く作成することができる、
そんなプログラミング言語処理系の設計に貢献したいと考えています。
素晴しいプログラミング言語があっても、それを使いこなせる人が少ければ意味がありません。 しかし、プログラミングとプログラミング言語の学習は難しく、早い段階でつまづいてしまう人もいます。
香川研究室では、いろいろなプログラミング言語を楽しく学べるように、 学習者を支援する次のような Web ベースシステムを開発しています。
システムの開発には、C, Java, JavaScript, Haskell, Python などのプログラミング言語や、 WebGL, Blockly, CodeMirror などのライブラリー、Bison/Flex などのツールを使用します。