- - PR -
Java VMの動作原理を教えてください
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-06-10 01:54
Java VMの動作原理を教えてください。
|
|
投稿日時: 2002-06-10 02:25
バイトコードを JVM が解釈して実行します。動作原理は実装依存。
ゲームマシンエミュレータとかと同じです。 この説明でわからなければ以下の本を参照。 http://www.oreilly.co.jp/BOOK/jvm/ http://www.amazon.co.jp/exec/obidos/ASIN/489471356X/qid=1023643550/sr=1-1/ref=sr_1_2_1/250-2503137-2741807 [ メッセージ編集済み 編集者: しょむ 編集日時 2002-06-10 02:29 ] [ メッセージ編集済み 編集者: しょむ 編集日時 2002-06-10 02:29 ] |
|
投稿日時: 2002-06-11 05:59
ありがとうございました。
できれば、実装にどのように依存するのかおしえていただけますか? |
|
投稿日時: 2002-06-11 08:49
下のほうの本は英語版ならWebに載ってますね(まったく同じ?)
http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html あと、VMに関する資料は http://www.ingrid.org/java/vm/ などを参考にしてください(膨大ですが) 実装依存ですが、いろいろな部分で効いてくるのではないでしょうか? 基本的なところではBigEndianやLittleEndianやら、一番大事なメモリ管理ももちろんですね 実装依存という言葉で語るならば、JavaVMの仕様書を満たしていれば、どんな方式で実装してもかまわないので、実現方法はすべて実装依存と呼べるのかも #なんて禅問答は置いておいて・・・ JavaでJavaVMを実装する、というプロジェクトがありましたので(URL失念)それなどは参考になるかと思います |
|
投稿日時: 2002-06-11 09:13
> 実装にどのように依存するのかおしえていただけますか?
仕様書を満たしていればJVMなので、どのJVMも動作は同じ。(なはず。現実では違ったりするけど 実装方法によっては速度も実行じ必要メモリ要領も違ったりする。 ArmのJazelleやSunのPicoJavaみたいにソフトウェアではなくハードウェア実装もあり。 |
|
投稿日時: 2002-06-11 09:27
「JVM」は、Sun のいう JVM spec に従って動作するもの、です。
Sun JDK と IBM JDK は実装や実現方法が違うかもしれない。 Java class code を native で動かせるチップだとまた実現方法が違うかもしれない。 ちうことです。 あなたの質問は「HTMLブラウザの動作原理を教えてください」と同じようなものです。 |
|
投稿日時: 2002-06-11 10:43
とりあえず
http://www-6.ibm.com/jp/developerworks/java/jalape-vm-index-j.html を読みましょう. すぐには分からないと思いますけどね.一朝一夕に JavaVMを理解しようと考えること自体おこがましい. >> 実装にどのように依存するのかおしえていただけますか? 仕様書を読めば分かるとおり. 簡単に言えばセマンティクスは規定するが実装は規定しない. #多分厳密には違うが. これは多分TRON譲り.ちなみにCPUでも似たようなもの. >仕様書を満たしていればJVMなので、どのJVMも動作は同じ。 >(なはず。現実では違ったりするけど 仕様書で規定されている部分については満たすことが 求められます.逆に規定されていない部分については 異なることも許されます.またスケジューリングのように 最初から決まってないものもあるわけです. だから,プログラマーはたとえばある特定のスケジューリング法, 特定の実装依存のコードを書いてはいけません.それは本質的には バグです.ただバグがあったからと言って,必ず毎回そのBUGが表面化 するとは限らないというだけです.これも当たり前といえば当たり前 ですがね. |
|
投稿日時: 2002-06-11 19:42
いろいろなご意見ありがとうございます。
|
1
