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

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

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

プログラミング言語のはなし10】
救世主の名はデニス・リッチーと言いました。彼は「C言語」を開発し、同僚のブライアン・カーニハンとの共著であるテキストが2人のイニシャルをとって通称「K&R」と呼ばれ、世界中に広がりました。

C言語は、マシン語のスピードと言語としてのわかりやすさを兼ね備えていたのです。

なぜBASICと比べてスピードが速いかというと、BASICは実行時にいちいちマシン語に翻訳する逐語通訳であるのに対し、C言語は事前に全てマシン語に翻訳を終えてからプログラムを実行するからなのです。前者を「インタプリタ型言語」と呼び、後者を「コンパイル型」と呼びます。

「...え、じゃあ、BASICも、コンパイル型にすればスピードが確保できたんじゃ...?」

うーん、それは理屈の上ではそうなんですが、残念ながらコンパイルってそれなりに大変な作業なので、80年代当初の非力なマイコンではちょっと無理だったんです。正直、その時代の一般プログラマーは「BASICやりますか?マシン語やって人間やめますか?」の2択でした。「悲しいけど、戦争(実はゲームプログラミング)なのよね」とニヒルにつぶやきながら圧倒的な敵に突撃するしかなかったのです。合掌。

とはいえ、もし、地球上にC言語が降臨しなかったとすれば、コンピュータ界は17世紀の計算労働者の如く過酷な世界となったことでしょう。え?知らない?ネイピアをGoogle先生に尋ねてみてください。対数ってスゴいね。

事実、現在使われているプログラミング言語は、ほとんど全てと言っていいぐらい、このC言語がご先祖様なのです。

C++も、Objective-Cも、Javaも、Perlも、Pythonも、PHPも、Rubyも、C#も全部。

C言語が北斗宗家いえ、元祖なのです。