開発言語を見てみよう つづき |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
はいっ、質問ですっ!
インタプリタとか
コンパイラって
何ですか?
|
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
電気が通ったら
「ON」で「1」な。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
ああ、
プログラムを実行する時の形式
のことなんだけど・・・。
コンピューターは、
突き詰めていくと、実は「0」と「1」
しか理解できない。
つまり、電気がOFFかONかしか
分からないんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ほんとにー!?
あんな複雑なことが
できるのに。
なんかびっくりー。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
複雑なことも、単純なことの
組み合わせでできてるって
ことだな。
だから「0」と「1」で、
コンピューターに分かる形で
命令を出す必要があるんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
 |
 |
|
 |
|
 |
|
コンピューターの言葉への変換例 |
|
人が分かる言葉 |
コンピュータが分かる言葉 |
A |
1000001 |
B |
1000010 |
C |
1000011 |
|
|
(アスキーコードを2進数へ変換した例) |
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
このコンピューターの言葉を
機械語(マシン語)というんだが、
「A」は、機械語では「1000001」になる。
だけどさ、作る側の人間が「0」と「1」だけで
プログラムを作るのは至難の業だろ。
だから、まず人間の分かる言葉で作って、
そのあとでコンピューターの分かる言葉に
「翻訳」すればいいと思わないか? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そこで登場したのが
開発言語(プログラミング言語)だ。
まず開発言語を使って、人間が理解できる形で
プログラムを作る。
これをソースコードという。
でもそのままじゃコンピューターは理解できない。
それをコンピューターが分かるように
機械語に「翻訳」してプログラムを動かすんだ。
その翻訳の方法が、実行形式だ。
これは、開発言語によって異なり、
特徴にもなっている。
代表的な形式はインタプリタ型とコンパイラ型だ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
簡単に言えば、
インタプリタ型が同時通訳型で
コンパイル型が翻訳書型
って感じかな。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
|
|
 |
|
 |
|
実行形式の特徴 |
|
|
インタプリタ型 |
コンパイラ型 |
実行時に必要なもの |
ソースコード
及び
インタプリタソフト |
実行形式プログラム
(バイナリ形式)
一般的にソフトといわれる |
翻訳回数 |
|
|
速度 |
|
速い |
翻訳済の機械語の内容をひたすら実行するだけのため。 |
|
機種依存性 |
低い |
違う種類のCPUやOSで実行する場合、その機種の「通訳」を用意すれば、どのコンピュータでも実行可能。 |
|
高い |
違う種類のCPUやOSで実行する場合、機械語が違うので実行形式プログラムを作成し直す必要がある。 |
|
秘匿性 |
低い |
実行のためにソースコードの配布が必須。そのため、読まれるとプログラムの内容が分かってしまう。 |
|
高い |
実行のためにソースコードの配布は不要。実行形式プログラムは「0」「1」なので、そのままでは読めない。 |
|
備考 |
スクリプトと呼ばれる言語はこの形式が多い。 |
ゲームなどデスクトップソフトはこの形式が多い。
いわゆるソフトを作る形式。 |
|
|
|
|
|
 |
|
 |
|
そうそう。
翻訳書が、
英語と日本語って
感じかな |
|
だから、
Windows用とか
Mac用とか
ソフトが別々なんだ。
コンパイル型なんだね。 |
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それぞれの方法には、
この表のように長所と短所があるんだよ。
特徴を押さえておいてくれ。
それから、コンパイルされて作成されたソフトを
バイナリと言うんだが、
CPUやOS用の機械語に翻訳されているので、
他のOSじゃ使えないよ。
ちなみに、このバイナリは、英語のバイナリー、
つまり2進数からきてるんだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
あと、図中のスクリプト型とか、バイトコード型とかバイナリ型とかだけど、
これは、似た開発言語を、その特徴の視点で分類してみたものだ。
スクリプト言語型は、
インタプリタ型で、すぐに実行できて、手軽に書ける。
文字列処理に強いものが多い。
反面、一般的に処理が遅い。
バイナリ型は、
コンパイラ型で、機種依存が高いが高速。
バイトコード型は、
コンパイラ型とインタプリタ型の両方の利点を組み合わせた形式。
機種依存が低く、速度も結構速い。
ソースコードの配布も不要で、コード内容も読まれづらい。
ただ、今は垣根がなくなってきてて、
スクリプト言語でも、コンパイルできたりして、いろいろ高速化してる。
それに、今のパソコンは、少し前のスーパーコンピューター並とか
いわれてるもんねえ。
パソコン自体が速くなっているからスクリプト型でも全然問題ないよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
へー |
 |
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
だんだん用語が増えてきたからなあ。
でも、今回の目的は、
開発言語を選ぶために、
「種類」と「特徴」を知ることだから。
詳しく覚えなくていいから、
「こんなのがあるんだなっ」て、程度に
心に留めといてくれ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
 |
 |
|