
今回、C言語を学ぶ機会を得ることができました。
その場で、学んだことをこのブログに文字起こししていくことで、
私自身の、理解を深めるとともに、誰かの助けになればと思っています。
C言語の開発の歴史
コンピュータは、元々アセンブラ言語というものを利用して、開発・制御されていた。
低水準言語。 → 機械語と呼ばれるものに近い、人間には分かりにくい言語。
初期のOSの開発などに用いられていた。
プログラムが非常に読みにくく、また使用するハード(コンピュータ)によって、書き方のルール(ニモニックコード)が変わるため、非常に大変。
C言語は、そんなアセンブラ言語の後発として、開発されたプログラミング言語である。
Dennis M.RitchieとKenThompsonの両名が、初期のUNIXを移植するために、C言語を開発した経緯がある。
BCPL言語を参考に、B言語が開発され、B言語を参考に、C言語が開発された。

A言語は、開発されなかったのですか、と質問してみました。
A言語は開発はされなかったそうです。
プログラミングで利用されるアルゴリズム(algorithm)の頭文字がAであるため、Bから名前を付け始めたのではないかと、回答をいただきました。
アセンブラ言語が低水準言語と呼べれるのに対して、C言語は、高水準言語と呼ばれるものである。
高水準言語は、いわゆる現在広く利用されているプログラミング言語のことを指す。
C言語の他に、PHPやPython、Java、BCPL、B、Fortranなどなど、様々なものがある。
低水準言語に比べて、人間にとって理解しやすいプログラミング言語という特徴がある。
また、アセンブラ言語はハードによって、書き方のルールが変わるが、高水準言語はハードに依存せず、WindowsやLINUXなど違いを気にせず開発可能である。

C言語は、OSの一種であるUNIXの移植のために、開発されたという経緯があります。
その点から、C言語は、コンピュータの内部の仕組みに密着した言語である。取っつきにくい言語ではあるが、プロになるほど良さが分かる言語だと、力説されました。
まだ、学び始めなので、C言語の良さも何も分かっていないですが、学び終えることには、理解したいところです。
C言語のバイブル
C言語の開発者である、RitchieがBrian W.Kernighan とC言語の解説書として、1978年に『The C Programming Language』という著書を出版しました。

題を直訳すると、『C言語プログラミング』となるのでしょうか。
ド直球の題名です。
この本には、C言語の言語仕様を規定した”Reference Manual(参照マニュアル)”が付録として、ついています。
この本は、C言語のバイブルとして“K&R”という愛称と共に親しまれました。
標準規格の登場
C言語の開発背景に、UNIXの移植を行なうためというものがありました。このように、C言語は他のコンピュータにプログラムを移植しやすい(可搬性が高い)という特徴があります。
また、K&Rに言語仕様が記されていたものの、これが曖昧なものだったため、様々な形のC言語のプログラムが生まれ、特徴である可搬性の高さを維持できなくなりました。
この事態に至り、C言語の標準規格の必要性が叫ばれるようになり、国際標準化機構(ISO)と米国国家規格協会(ANSI)の協力で行われました。
1989年12月に、米国内での規格であるANSI X3.159-1989 : Programming Language-C が制定されました。
その後、1990年12月に世界規格としてISO/IEC 9889 : 1990(E) Programming Language-C が制定されました。

日本でも、日本工業規格(JIS)によって、規格が定められており、1993年にJIS X3010-1993 : プログラミング言語C が定められました。
規格制定後も、規格の見直しが続いており、”C99″や”C11″のように制定年度に由来して、名前が付けられています。

ただし、実際の開発現場では、使用ライブラリの関係などから、必ずしも最新の規格を採用しているわけではないようです。
まとめ

C言語は、UNIXを開発する副産物として誕生したプログラミング言語です。
そのような誕生背景があることから、コンピュータとの親和性が高く、非常に有用なプログラミング言語だそうです。←この部分が伝聞なのは、私自身がまだ実感していないため。
歴史が古い言語だけあり、規格も多数存在しています。あくまで規格なので、大きな差異はないと思われますが、実際の開発現場や検定試験では、注意をしたいところです。


