Coolは、Classroom object Oriented Languageの略。

文字通り、教育用オブジェクト指向言語。

courseraで始まったCompilerの講義でつかう。この言語で、コンパイラの仕組みを学ぶ。

Linux Mintにインストールしたメモです。

環境

  • Linux Mint 16

インストール

まずは、依存ライブラリをインストール。

sudo apt-get install flex bison build-essential csh openjdk-6-jdk libxaw7-dev

つづいて、Coolをインストール。

sudo mkdir /usr/class
sudo chown $USER /usr/class
cd /usr/class
wget https://spark-university.s3.amazonaws.com/stanford-compilers/vm/student-dist.tar.gz
tar -xf student-dist.tar.gz
ln -s /usr/class/cs143/cool ~/cool

最後にパスを通す。

export PATH=/usr/class/cs143/cool/bin:$PATH

Hello Cool

お決まりのHello Worldをしてみる。

といっても、/usr/class/cs143/examples/hello_world.cl にサンプルがある。

class Main inherits IO {
   main(): SELF_TYPE {
        out_string("Hello, World.\n")
   };
};

コンパイルして実行。

$ cp /usr/class/cs143/examples/hello_world.cl .
$ coolc hello_world.cl
$ spim hello_world.s
SPIM Version 6.5 of January 4, 2003
Copyright 1990-2003 by James R. Larus (larus@cs.wisc.edu).
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /usr/class/cs143/cool/lib/trap.handler
Hello, World.
COOL program successfully executed
Stats -- #instructions : 152
         #reads : 27  #writes 22  #branches 28  #other 75

Emacs mode

こんなのがあるらしい。未検証だけど、リンクだけはっておく。