mirahを使ってみる

mirah=javaのspeed+rubyの文法 のような言語です。
rubyっぽい記述を翻訳して.classに落とし込むようなトランスレータのようなものみたいです。
C#っぽい見た目のファイルをC+glibの形に翻訳するvalaに近い感じですね。

install

BuildingMirahがとても参考になる。
javaとgitの環境は必要

pwd=`pwd`
mkdir workarea && cd workarea

## jruby
wget http://jruby.org.s3.amazonaws.com/downloads/1.5.2/jruby-bin-1.5.2.tar.gz
tar xvzf jruby-bin-1.5.2.tar.gz
mv jruby-1.5.2 jruby

## mirah
git clone http://github.com/headius/bitescript.git #core library for mirah
git clone http://github.com/headius/mirah.git

## build
cd ./mirah
../jruby/bin/jruby -S rake jar

## add $PATH
cd $pwd
cd workarea/jruby/bin
jruby=`pwd`
cd $pwd
cd workarea/mirah/bin
mirah=`pwd`
export PATH=$mirah:$jruby:$PATH
cd $pwd

使ってみる

例えば、以下のようなファイルを作成(hello.mirah)

puts "hello"

このファイルをmirahcでコンパイル

$ mirahc hello.mirah && java Hello
# mirahc に-jオプションをつけると.javaで出力してくれる。
$ mirahc -j hello.mirah

ちなみに以下のようなjavaのコードに翻訳されます。

// Generated from hello.mirah
public class Hello extends java.lang.Object {
  public static void main(java.lang.String[] argv) {
    java.io.PrintStream temp$1 = java.lang.System.out;
    temp$1.println("hello");
  }
}