2014年10月25日土曜日

RubyFlux を使って Ruby から Java へコードを変換する

引用元:
http://qiita.com/tyabe/items/f49cb1b3df437a83fffc


RubyFlux を使うと、Ruby で書いたコードを Java コードに変換することができます。
ほぼ README に書かれているままですが、こんな感じです。
あ、環境は mac です。





# JRubyが入ってなかったのでインストールする
# ( rbenv 使ってます)
$ rbenv install jruby-1.7.1
$ rbenv local jruby-1.7.1
# リポジトリを引っ張ってくる
$ git clone git://github.com/headius/rubyflux.git
$ cd rubyflux
# maven でパッケージを作る
# maven が入ってない場合は
# $ brew install maven
# とかで、インストールしておく
$ mvn package
# ここまでは、1回やっておけば良い





# Rubyでコード書く
$ vim fib.rb
$ cat fib.rb




fib.rb


def fib(a)
if a < 2
a
else
fib(a - 1) + fib(a - 2)
end
end

puts fib(40)






# とりあえず、JRubyで実行してみる
$ ruby fib.rb
102334155
# Javaコードを生成、コンパイルして実行する
$ rake run[fib.rb]
jruby -I target:src/main/ruby src/main/ruby/ruby_flux.rb fib.rb
javac fib.java
java fib
102334155
# 生成されたJavaのコードを見てみる
$ cat build/fib.java




build/fib.java


public class fib extends RObject {
public static void main(String[] args) {
new fib().$main();
}

public void $main() {
RObject $last = RNil;
$last = puts(fib(new RFixnum(40L)));
;
}

public RObject fib(RObject a) {
RObject $last = RNil;
if (a.$less(new RFixnum(2L)).toBoolean()) {
$last = a;
} else {
$last = fib(a.$minus(new RFixnum(1L))).$plus(
fib(a.$minus(new RFixnum(2L))));
}
$last = $last;
return $last;
}



実用性があるかどうかはまだ分かりませんが、面白いですね。


____________________________


コメント:
RubyアプリをJAVAアプリに変換出来るようだ。
しかし、Ruby on RailsからWEBのJavaに変換できるかは、これから確かめてみようと思います。

0 コメント:

コメントを投稿