第2話

どうもこんにちは。くまさんです。ハトさんだよ


くまさん「今日はJavaについてお話しするよ」


ハトさん「よろしくお願いします」


くまさん「早速だけどハトさん、Javaとは何か知っているかな?」


ハトさん「うーん、分からないや!」


くまさん「素直だね...おほん、Javaとはプログラム言語のことで、私たちが普段利用しているアプリやゲームはJavaを使って開発されているんだ」


ハトさん「プログラム言語って何? くまさん」


くまさん「プログラム言語とは、コンピュータに対して命令を行うために考案された正確に定義された記号と規則からなるコンピュータ言語のことだよ」


ハトさん「コンピュータは僕も知ってるよ。複雑な計算を行う機械のことだよね。でも、なんでコンピュータに命令をするためにプログラム言語なんて作ったんだろう? 直接命令しちゃえばいいのに。これやっちゃって〜とか」


くまさん「フフッ...あぁごめんね。面白くてつい。確かに変だよね。実はコンピュータにとって便利な2進数も人間さんにとっては不便だったからなんだ」


ハトさん「にしんすう? なんだかどこかで聞いたような...」


くまさん「2進数とは、0と1の2種類の数字の組み合わせによって数値を表現する形式のことだよ。例えば、0、1と数字を数えていくんだけど、この場合次に来る数字は何になるかな?」


ハトさん「0と1しか使っちゃいけないんだよね? うーん...10かな?」


くまさん「正解! 2進数では0、1、10というように2を基数として2倍ごとに位取りを行うんだ」


ハトさん「ちょっと待ってくまさん。2進数のことは分かったけど、僕たちが普段使っている数字は0、1、2...って増えていって、10で位取りするよね」


くまさん「良い着眼点だね、ハトさん。そう、私たちが普段使っているのは10進数といって10倍ごとに位取りを行うんだ。他にも16進数と言って16倍ごとに位取りをする形式もあるんだよ」


ハトさん「ということは、人間さんが得意なのは10進数でコンピュータが得意なのは2進数だからそこでギャップができちゃったんだね。でもおかしいところがもう一つあるよ。コンピュータは人間さんが作った機械なのに、なんで人間さんが苦手な2進数を得意にしちゃったんだろう...」


くまさん「それは電子式コンピュータの電子回路などのデジタル回路、磁気ディスク等の記憶メディアでは、電圧の高低、磁極の N/S など、物理現象を二状態のみに縮退して扱わなければならないんだ。それに、真と偽の2つの値のみを使用する二値論理をする規則があるよ。更にそこで数値を扱うには、それに「0 と 1」の二進法を取り入れるのが最適だったからなんだ」


ハトさん「なるほど、色々な2つの状態を表すために2進数が最適だったからなんだね。そうだ! まだ本題に入ってなかったよ」


くまさん「うん。じゃあプログラム言語について分かったことだし、本題に入ろうか。最初に話したことだけど、Javaとはプログラム言語のことだよ。主にアプリやゲーム開発に使われている言語だね。Javaの特徴を表す言葉に「Write Once、Run Anywhere(一度書いたら、どこまでも動く」があるよ。この特徴を実現しているのがJVM(Java Virtual Machine)という仮想的なコンピュータだね」


ハトさん「仮想的なコンピュータって何?」


くまさん「仮想的なコンピュータとは、実際のハードウェアではなく、ソフトウェア上でコンピュータの動作を本来とは異なる動作環境で実行する仕組みのことだよ。JVM(Java Virtual Machine)は、Javaのプログラムを動かすための仮想的なコンピュータなんだ」」


ハトさん「なんだかややこしくなってきたよ」


くまさん「VRのように、現実には存在しないけど仮想的に動作するものがあるよね。JVMも、それ自体は物理的なコンピュータではないけど、Javaのプログラムを動かすためにコンピュータのように働くんだ」


ハトさん「うんうん...! なんだか分かってきたよ」


くまさん「ハトさんが理解できたようでなによりだよ。さて、Javaの特徴に戻るよ。私たちが普段の会話で使う言語のことを「自然言語」と呼ぶんだ。そして、自然言語に近い文法を使って記述する人間さんが読み書きするためのものはソースコードと呼ぶよ。一方、機械語しか理解できないコンピュータはソースコードを理解できないんだ」


ハトさん「もしかして、機械語ってコンピュータが得意な2進数と関係があるの?」


くまさん「半分は正解かな。機械語はコンピュータが理解できる言葉で、基本的には0と1のデータで表現されるよ。ただし、ソースコードはまずJVMのコンパイラ、javacによって中間言語バイトコードに変換されてからJVMが解釈して実行することで最終的にコンピュータが理解できる形になるんだ。そのソースコードを機械語に変換する作業を「コンパイル」というよ。ちなみにこの作業をする変換ソフトウェアのことを「コンパイラ」というんだ」


ハトさん「とにかく、JVMを使えばソースコードを使ってコンピュータに命令できるんだね。よーし、僕もソースコードを書いてゲームを作っちゃうぞ!」


くまさん「フッフッフ...甘いよハトさん。Javaは確かに独学でも習得できるけど、それには継承やポリモーフィズム、ループ文といった必要な知識をつけなければいけないんだ」


ハトさん「な、何ー!? 一気に不安になってきた...」


くまさん「大丈夫だよ。私と一緒にJavaを勉強しようか」


ハトさん「くまさん...!」


くまさん「今日はここまで! 皆さんまた次回お会いしましょう」


ハトさん「またねー!」

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る