見出し画像

時代を変えたC言語

1980年代の後半に初めてC言語に出会いました。
最初はUNIXというOSを作るために作られた言語ということで、組み込み系のソフトウエア開発にはきっとあまり関係ないのだろうと思ってました。
実際に教育を受けてみて、UNIXの操作性もまあまあ、C言語もさわりだけしか見なかったので、そんなもんか・・という感想でした。

ところが、1990年代に入り、複数の企業がC言語のコンパイラの開発に着手し始め、CPUメーカーもそれまではアセンブラ言語のみでしたが、だんだんC言語のコンパイラとセット(またはどこかの企業と連携)で販売し始めました。

アセンブラ言語は基本的に、「if文が書けない」という今では考えられないような制約があり、それに比べてC言語は、勿論if文も書けますがそれ以外に、
・構造体、共用体
・ポインタ変数(これはアセンブラでも似たような記述はできます)
・配列
・関数の引数と戻り値の宣言
など、それまでに比べて画期的に生産性を飛躍させる記述が可能になりました。
これによっておそらく実装と単体デバッグの効率は2倍以上になったと思います。

この時代はソフトウエアの生産量が指数関数的に増加していた時代で(現代もそうかもしれません)、C言語の登場によって何とか人を増やさずに生産性を上げて追いつくことができていました。

そういう意味で、C言語は「時代を変えた画期的な高級言語」だったのです。

ただし、アセンブラ言語に比べて明らかに冗長性は増加し、メモリ効率は悪化、CPU実行効率も悪化、それらをどのようにおさえるかが課題となったのでした。

(次回に続く)

よろしければサポートをお願いします。また、何かコメントがあれば情報交換したいので是非お願いします。