くまちゃんのiOS/Androidゲームプログラミング

マイペースでゲームつくってます。

プログラミング言語のはなし2

プログラミング言語のはなし2】
これまで人類が生み出してきたプログラミング言語が何種類も存在する理由は、いかにヒトがコンピュータにさせたい仕事を効率良く記述するコトができるか、という試行錯誤(と若干のエゴ)の結果です。

人工衛星打ち上げ軌道計算など科学技術計算向けのFORTRAN(フォートラン)、オフィスの事務処理向けのCOBOL(コボル)、個人や入門用のBASIC(ベーシック)などなど、それぞれ用途に合わせて誕生したのです。

ここで押さえておきたいコトは、「さっきから言語、言語と言うが、いったいそもそもコンピュータにニンゲンのコトバが通じるのか?」という素朴かつ根源的な問いです。

-通じません。

-まったく理解しません。

「え?じゃあ何で言語なんて呼んでるの?対話するのじゃないの⁈」

-対話しません。

-一方的な命令です。

そう、クドクド言われなくとも分かるかと思いますが、コンピュータはヒトの発するコトバなど分かるハズがありません。彼ら/彼女らが理解できる唯一のことは...

「CPUのあらかじめ定められた"命令"」

だけです。

コトバでもなんでもありません。ただの命令の羅列です。例えば、
-AとBを足せ
-AとBを比較せよ
-メモリにこの値を入れろ
-メモリ何番地にジャンプしろ

というような、味気も風味も何もない無味乾燥な命令しかワカリマセン。しかも、大まかに言ってだいたいこれぐらいの種類の命令しか「無い」んです。

「そんなバカな?たったそれだけなハズがないでしょう⁈だって、画面にキャラクターを映したり、音が鳴ったり、通信したりするじゃないですか!例えば、「書け」とかあるんでしょう?」

-いえ、無いんです。

「??」

-では、どうやってコンピュータが画面に文字を表示しているかと言うと、決められたあるところ(メモリ)に文字コードを放り込めば文句も言わずにチカッと表示してくれるのです。

それは、「メモリにこの値を入れろ」でいいんです。

音を鳴らすのも同じです。通信するのも同じです。コンピュータは全て、「ここにこの値があればこう反応する」と決められた仕様に従って動くだけです。

ここで気づかれたと思いますが、我々ヒトが「プログラミング言語」と呼んでいるものは、すべて、このCPUの命令へ変換するためのものなのです。