072 ソフトの基礎知識を学ぼう2 #5

03 : コンピュータとシステム

そこでアセンブラ言語を改善し、登場したのが COBOLやFORTRANであり、C言語だ。
これら言語はコンパイラ言語と呼ばれ、プログラムをそのコンピュータで動作する機械語に変換してくれる。

コンピューター初期の頃はメーカーによっては、アーキテクチャーは異なるので、そのハードウェア前提にプログラムを組まなければならなかった。それがアセンブラ言語だった。

まもなくコンパイラ言語が登場する。これは、人間が命令形式で作成したプログラムをコンパイラがそのハードウェアで動作する機械語に変換してくれる有り難い仕組みのことである。
これによりより生産性の高い、より複雑な処理を行えるプログラミングの考え方が重視されるようになった。

汎用機全盛の頃は、COBOL、FORTRAN、PL/Iなどの言語を使用することになる。事務処理のCOBOL、科学技術計算のFORTRAN、両方を兼ね備えたPL/Iが広く使用された。
その後、汎用機を背を向けて登場してくるC言語は、マイクロプロセッサの制御、その後のUNIX系、PC系で多く利用されるようになる。

om

上記に記載した COBOL、FORTRAN、PL/Iで、今も生き続けているいるのはCOBOLとC言語くらいだろうか。
COBOLは汎用機が超高価だった頃に登場した言語であり、あえてハードの制御が出来ないようになっている。
逆にC言語はハードの制御が可能だ、C言語で制御プログラムを組めるのはそこにある。C言語を学ぶと分かるが、Java、C♯、C++、objective-C に近いものがある。
それは当然だ。Java、C♯、C++、objective-C は、C言語から派生しているからだ。

C言語から派生したこれらはオブジェクト指向言語の特徴を持つ。オブジェクト指向言語の詳細は別に触れるが、言語の備えるクラスと継承を利用することで生産性が格段に向上する。

こうして一見遠回りで面倒に思えるかもしれないが、ハードとソフトの歴史を詳しく紐解いていると、コンピュータが非常に良く分かる。これから何の言語を勉強すべきかさえも見えてくる。
そして、本格的な言語を1つマスターしていると、いつのまにかコンピュータの仕組みさえも分かってくるから面白い。繰り返すが、本格的な言語を1つマスターすることだ。

この業界を志して、思うように言語開発が出来ずに挫折する人は沢山いる。
それは言語が分からないのでなく、アルゴリズムが分からないからだ。
言語の文法をしっかり覚えているのに、いざプログラムを組みだそうとすると、どう組んで良いのか分からないのだ。身に覚えのある人は沢山いるはずだ。

アルゴリズムを理解していないためプログラムを組む「こつ」が掴めないのだ。
一つ良いヒントを与えよう。マネから始めれば良いのだ。


« »