Giter Club home page Giter Club logo

rava's Introduction

---------------------
	Rava / JavaVM on Ruby

		written by K.Sasada
			---------------------
	------------------------
-----------------------


■ 1 - Rava / JavaVM on Ruby

- Tue, 15 Oct 2002 09:47:06 +0900、初稿。

□ 1.1 なんじゃそりゃ

Ruby で書いた JavaVM です。JRuby ってあるじゃないですか。あれは、Java 
で Ruby インタープリタ動かすやつですけれども、これは、Ruby で Java バイ
トコードを動かします。

どう考えても、使う利点って(殆ど)無いような気もしますが。

誰か考えてそうで、だけど(その無意味さに)誰も作っていなかった(一応、Google
様は知らなかった)。

まぁ、ジョークの一つとしてご笑覧ください。

□ 1.2 つかうとうれしいひと

どんな人が使うとうれしいかと申しますと。

- JavaVM 勉強したいけど、ドキュメント読むの面倒だなぁ、Ruby 
  ソースのほうが、読むの楽だしぃ、という人(いるんかそんなの)
- もう、Ruby しか使いたくないけど、しょうがなく Java を使う人
  (うれしいのかほんとに)

少しまじめに(必死に利点を考えて)、

- Java ネイティブメソッドを書きたいけれど、プロトタイプを作りたい
  (Ruby スクリプトでネイティブメソッドかけるので、プロトタイプを作るのは便利かもしれない)

でも、たしか JRuby もそういうことできるんだよねぇ、確か。違ったっけ。

Java のプログラムが Ruby から呼べても、そんなうれしいこと無さそうな気が
するしなぁ。

□ 1.3 もくてき

自分の目的ですが。

- Ruby の練習
- JavaVM の復習
- 今後の研究のため(ほんとか?)
- 現実逃避(動機の 50% くらい)

□ 1.4 つかいかた

まず、jdk とってきて、jdk/jre/lib/rt.jar を解凍して、*.class をばらして
ください。固まってると、読めません。

んで、同じディレクトリに 例えば java/lang/* を置いておきます。そんで、
適当に動かしたいものを javac で作ってください。あとは動かすだけです。

>
ruby rava.rb [java class name] [args 1] [args 2] ...
>

で、動きます。多分。

また、

>
ruby rjclass.rb [java class name]
>

で、クラスファイルの情報を、これでもか、ってくらい表示します。ちょっと
いいかげんだけど。

また、

>
ruby rjnative.rb [java class name]
>

で、ネイティブメソッド定義用の雛を吐きます。

□ 1.5 だうんろーど

[[http://www.namikilab.tuat.ac.jp/~sasada/prog/raja001.lzh]]

Windows2000 Pro / ruby 1.6.7 mswin版 だけで動作確認しています。


□ 1.6 おやくそく

Ruby と同じライセンスでお願いします。(と言っておくと、面倒がないらしい
)。

原則、私に迷惑がかからないように。あとは好きにしてください。

バグ報告とか、利用報告とかあると、うれしく思います。

あ、著作権は放棄しません。というか、できません?

□ 1.7 もうできてること

とりあえず並べてみました。

- バイトコード半分くらい?
- メソッド呼び出し
- スタティックメソッド呼び出し
- フィールド読み書き
- スタティックフィールド読み書き
- ネイティブメソッドを ruby で書き書き
- クラスの解釈・表示
- 継承・ポリモフィズムの実現(メソッド呼び出しで出来上がってるってことだけど)

□ 1.8 まだできてないこと

とりあえず、まだたっくさんあります。

- バイトコード半分くらい?
- スレッド
- うごかないネイティブメソッドがごろごろ
- ネイティブメソッドのも〜っと簡単な追加
- jar アーカイブから直接クラスをロード
- 完璧なコード(バグが結構ありそう)
- 速さ(おせー・・・)
- テスト(どーやって作ればいいんだ、こんなものに)
- すてきな名前(Rava はかっこわるいぞ)
- まだまだありそう

□ 1.9 おもうこと

Ruby やっぱすごいわぁ。一週間、実質週末3日間だけでこれだけできちゃうん
だもんなぁ。

まじめな話、これでVMのナニが研究できるんじゃないかともくろんでます。と
りあえず、来年の仕事だけれど、それは。

まぁ、ジョークってことで一つ。

名前。JRuby の向こうを張って、RJava ってしたかったんだけれど、既に、rjava
, remote java っていうユーティリティがあるそうで断念。とりあえず Rava。
なんとなく、シムシティーの新聞を思い出しませんか?

Ruby と Java 、いったりきたりしてソース書いてると、だめっすね。とりあえ
ず Java がかけなくなった。文字列を''で囲んでみたり、';' を忘れてみたり。

拙いソースですが、改善点などあれば、ご教授いただければ幸いです。


■ 2 れんらくさき

ご意見、ご要望、ご苦情はこちらのメールアドレスへお願いします。

 [email protected]

また、一時配布先は

 http://www.namikilab.tuat.ac.jp/~sasada/

のどこかにあると思います。


なお、本プログラムは、並木研究室とは、あまり関係がありません。

ささだの趣味です。

だけど、上に述べたとおり、研究で利用するかもしれません。

しないかもしれません。


rava's People

Contributors

koichiro avatar

Watchers

kk2170 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.