mirahについて
このエントリーはマイナー言語 Advent Calendar 2014 - Qiita4日目の記事です。
前: ksmakotoさんでマクロ、拙作のテキストマクロ言語m55について主に - ksmakotoのhatenadiary
κeenです。進捗ダメです。マイナー言語Advent Calendarが空いてるようだったのでMirahの話を捩じ込みますね。
Mirahとは?
以前の記事を参照していただければだいたい分かるかと思いますが、「Ruby風の文法で書けるJava」です。JRubyのようにRubyをJavaで実装したのでもなくGroovyのようにJVM上で動く別の言語でもなく、あくまでJavaそのものです。
JRubyとの違いは理解頂けるかと思いますが、Groovyとの違いを説明するとしたら一番はランタイムですかね。Groovyはコンパイル後のソースもGroovyを必要としますがMirahはコンパイルされたら普通のJavaで書いたのと同じ.classファイルになります。
かといってくるくる括弧({}
)をend
で書けるだけかというとそうでもなく、多くのシンタックスシュガーがマクロとして実装されています。
例えば
10.times do |i|
puts i
end
はJavaの
for(int i = 0; i < 10; i++)
System.out.println(i);
と同じバイトコードを生成します。
v0.1.4リリースおめでとうございます。
2014-11-14にv0.1.4がリリースされました。ラムダ式について少し進展があったようです。
(lambda Runnable do
1000.times { puts "Hello"}
end).run
とか書けます。が、
(lambda Runnable do
1000.times { puts "Hello"}
end).start
とは書けませんでした。やりたいのはこっちなのにね。ちょっと突っついてみます。
ここからそれっぽい情報入手出来ます。
ここからNetBeansのプラグインを入手出来ます。