kk2170 / rava Goto Github PK
View Code? Open in Web Editor NEWThis project forked from koichiro/rava
JavaVM on Ruby
Home Page: http://www.namikilab.tuat.ac.jp/~sasada/prog/rava.html
License: Other
This project forked from koichiro/rava
JavaVM on Ruby
Home Page: http://www.namikilab.tuat.ac.jp/~sasada/prog/rava.html
License: Other
--------------------- 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/ のどこかにあると思います。 なお、本プログラムは、並木研究室とは、あまり関係がありません。 ささだの趣味です。 だけど、上に述べたとおり、研究で利用するかもしれません。 しないかもしれません。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.