κeenのHappy Hacκing Blog | Lispエイリアンの狂想曲

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のプラグインを入手出来ます。

Written by κeen
Older article
VOPで遊ぶ