COINS で Brainfuck のコンパイラ (1)
「COINS を使えば簡単にコンパイラが作れるよ」という宣伝文句にのせられて、試しに COINS を利用して Brainfuck のコンパイラを作ってみましょう。実用上の意味はありませんけれども、入門編ということで。
参考文献は
- http://www.coins-project.org/advanceduse/index.html
- 情報処理学会誌連載「21世紀のコンパイラの道しるべ」の連載第一回(Vol.47 No.4 2006年4月号)と第二回(Vol.47 No.5 2006年5月号)
あたりです。
JDK、ANT のインストール
COINS のコンパイラ(C、Fortran77)を利用するだけなら JRE だけでもいいですけど、コンパイラを作りたいならば JDK 1.4 以降と Apache Ant が必要。なんかまあ、適当に入れておいてください。
公式には JDK 5 までが動作確認されてるみたいです。一応手元の環境では JDK 6 で動かしてますけど、(たぶん)ちゃんと動いてます。
あと GNU Make も必要なので、無い人はそれも。
COINS のインストール
まずはアンケートなどに答えつつ、Jar アーカイブのダウンロードを。
http://www.coins-project.org/download/dl.cgi
ダウンロードするのはどっちでもいいですけど、まあ日本語のドキュメントなどが付いててお得ってことで日本語版で。
適当なところにインストールしましょう。ここでは「~/lib」あたりにインストールしてみます。
~/lib % jar xf coins-1.4.2.2-ja.jar ~/lib % cd .. ~ % cat >hoge.c #include <stdio.h> int main(){puts("hogehoge");} ~ % java -classpath lib/coins-1.4.2.2-ja/classes coins.driver.Driver -coins:assembler=as -b x86 hoge.c ~ % ./a.out hogehoge ~ %
うーん大学で生まれたものなんて「がくじつてき」にはきっとすごいんだけど使いにくいに違いない、という俗な偏見を砕く簡単さ。