広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 3 その3
Javaの実行形式

Javaの特徴の一つに
「一回書けば、いろいろな環境で動く」
っていうのがある。

Javaで一回ソフトを作ると、
OSごとにソフトを作らなくていいんだ。


ほら、普通ゲームとかは
Mac用とかWindows用とか別々にあるだろ。

Javaで作られたソフトは、同じものがどこでも動くんだ。
 
CD-ROMが
1枚で済むんだね。
   


それはJavaが
バイトコードという仕組みで
動いているから
なんだ。

実行形式は前回やったよな。
コンパイル型とかインタプリタ型とか。

えっと・・・

うん・・・。

   


おいっ、
ちょっとは覚えてるよな?

プログラムの実行の仕方だぞ。

ほら、お前が
たりーんなガキんちょの図
を描いた・・・

たりーんじゃない!
「ぽんちょ」っていうんだよ!

あ・・・あれか。
   

  バイトコード

・・・・・

Javaの実行形式は、
インタプリタとコンパイラの両方の仕組みを
取り入れた バイトコードという形式なんだ。


この仕組みによって、作ったソフトが
いろいろな機種で動くのを実現している。

インタプリタとコンパイルの特徴を思い出し
ながら読んでくれ。

覚えてるよ。
ほんとだってばー

もお、
ざっと見ればいいって
言ったくせに。

インタプリタ型 実行時にソースコードを読んで、 翻訳しながら実行する。 実行の度に毎回翻訳する。  同時通訳のようなイメージ。
コンパイラ型 実行前に、ソースコードを翻訳して、 実行形式プログラムを作成する。 実行時は翻訳不要。
バイトコード型 実行前に、ソースコードを翻訳して、 バイトコードプログラム(いわゆるソフト) を作成する。 実行時にランタイムが それを機械語に翻訳する。
 
ぽんちょが
二人だね。
 
バイトコード型は
コンパイラと
ランタイムの
2つのソフトを
使うんだね。
 
そうそう。
この図のバイトコードから左側が
コンパイル形式で、右側が
インタプリタ形式って感じ。

2つの仕組みをバイトコードを
はさんで合体させたイメージだね。

ランタイムはインタプリタと
同じようなもんだと思ってね。
 



実行形式の特徴
 
  インタプリタ型 バイトコード型 コンパイラ型
実行時に必要なもの ソースコード
及び
インタプリタソフト
バイトコード
及び
ランタイムソフト
実行形式プログラム
(バイナリ)
一般的にソフトといわれる
翻訳
回数
毎回
通訳が翻訳しながら実行するため。
毎回
通訳が翻訳しながら実行するため。
一回
実行形式プログラムの作成後は不要。
速度
遅い
通訳が翻訳しながら実行するため。
やや速い
中間コードから翻訳しながら実行するため。
速い
翻訳済の機械語の内容をひたすら実行するだけのため。
機種
依存性
低い
違う種類のCPUやOSで実行する場合、その機種の「通訳」を用意すれば、どのコンピュータでも実行可能。
低い
違う種類のCPUやOSで実行する場合、その機種の「通訳(ランタイム)」を用意すれば、どのコンピュータでも実行可能。
高い
違う種類のCPUやOSで実行する場合、機械語が違うので実行形式プログラムを作成し直す必要がある。
秘匿性
低い
実行のためにソースコードの配布が必須。そのため、読まれるとプログラムの内容が分かってしまう。
やや高い
バイトコードはバイトデータ化されているのでそのままでは読むことはできない。
高い
実行のためにソースコードの配布は不要。実行形式プログラムは「0」「1」なので、そのままでは読めない。
備考 スクリプトと呼ばれる言語はこの形式が多い。 インタプリタとコンパイラの利点を取り入れた形式
バイトコード= ソフト
ゲームなどデスクトップソフトはこの形式が多い。
いわゆるソフトを作る形式。

※現在のJavaは、JITコンパイル方式(最初の実行時にバイトコードをマシン語に変換してしまい、以後は翻訳しない方式)など、高速化技術が取り込まれており、必ずしもこの表の特徴と一致しない。
はいはい
  【ダブルクリック】
マウスのボタンを
二回連続で押す・・・ 
 
バイトコードの特徴はこんな感じ。

バイトコードは、
一般的に言う「ソフト」にあたる。
ダブルクリックで起動するようにできるから
使用感は、普通のソフトと同じだ。
 


Javaの実行時の動作 バイトコードの段階では処理内容が、各ハードウェア、OSに依存しない形に作られている。OSごとにやり方が違う処理は、各OS用のランタイムに任せる。
Javaは、
バイトコードとランタイムの力で
「一回書けば、いろいろな環境で動く」
んだね。
 
そういうこと。


やったー!

じゃあ、あたしがゲーム作ったら
どれでも動くんだね!

プレ*テ3でも動くんだよね!
W*iでも動くんだよね!
えっと・・・

いつか、たぶん
もしかして、

動くといいな・・・。
 
大人の
事情がね・・・
   

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告