こんにちは。
前回は、プランカルキュール、FORTRANについて紹介しました。
今回まず紹介するのは、ALGOLです。
ALGOLはアルゴリズム言語を意味する「alogrithmic language」から名付けられました。
1950年中ごろから、FORTRANなどのプログラミング言語が、アメリカで作られていたことに対して対抗してヨーロッパの研究者によって、ALGOLの開発が始まりました。
教科書や学術論文などでアルゴリズム記述の事実上の標準として、30年以上使われました。
B言語やC言語などの様々なプログラミング言語に影響を与えました。
ALGOLには主要な仕様が3つ存在します。
・ALGOL58
最初に発表された仕様で、当初はIAL(International Algebraic Language)という名前で提案されました。
・ALGOL60
1960年中ごろにX1 ALGOL60として実装されたのが最初で、1963年に改訂されました。
・ALGOL 68
1968年に発表され、1973年に改訂されました。
可変配列やスライスなどの新たな機能がここで導入されています。
現在ALGOLを書ける人はほとんどおらず、廃れてしまっています。
次に紹介する言語はLISPです。
LISPは、1958年に設計された言語で、「list processor」から由来しています。
LISPはコンピュータプログラムのための実用的かつ数学的な表記法として作られました。
LISPはそこからすぐに人工知能研究に好まれるプログラミング言語となりました。
LISPは、木構造、動的型付けなどの多くのアイディアを生み出しました。
LISPは、他のプログラミング言語と比べると人気は劣りますが、自然言語処理やシンボリック計算などの分野で重要な存在として使われています。
次に紹介するのはRPGです。
RPGは1960年代に開発された、ビジネスソフトウェア向けのプログラミング言語です。
RPGは「Report Program Generator」の頭文字をとったものが由来となっていて、データファイルを読みこんで、小計や検算を含んだ会計報告を生成します。
RPGの前身はFARGO(Fourteen-o-one Automatic Report Generation Operation)というものです。
RPGはFARGOよりも会計報告作成言語という点で優れていたので、すぐに置き換わりました。
RPGもいくつか改良が行われ、バージョンとしてはRPGⅡ(1969年)、RPGⅢ(1980年ごろ)、RPGⅣ(1994年)があり、RPGⅣは数十年前に書かれたRPGプログラムを、現在でもほとんど修正なしで実行することができ、互換性がある言語だと言えます。
RPGは、現在でも一部の企業や組織で使用されていますが、あまり一般的な言語とは言えません。
次に紹介するのはCOBOLです。
COBOLは19591年に事務処理用に開発されたプログラミング言語で、名前は「Common Business Oriented Language」(共通事務処理用言語)に由来しています。
COBOLは非理系の事務員や官吏であっても、プログラミングできる言語として設計されたため、英語に近い記述を目的としたコマンド語彙や構文が採用されています。
COBOLは主な用途として、特に金額計算などの事務処理用に広く使われています。
COBOLは自然言語(英語)に近い構文を持つため、ソースコードの記述が冗長になってしまいますが、可読性が高いのが特徴となります。
COBOLはモダンなプログラミング言語と比べて論理制御機能は貧弱ですが、文字列解析や文字列編集、帳票、画面編集などの事務処理機能は、他のプログラミング言語よりも豊富です。
また、COBOLのリリースの更新が続けられていて、2002年に新たにリリースされたCOBOLは、オブジェクト指向にも対応しています(最新リリースは2014)。
C 言語やJavaなどの言語が登場した後も、COBOLは主に商用計算記述用として、主に金融業界や行政サービスなどで広く使用されていて、現在でも多くの企業でCOBOLで作成されたシステムが稼働しています。
ただCOBOLを扱えるエンジニアの増加速度より、減少速度の方がずっと速いと言われています。
また、COBOLなどで記述されているPCが普及し始めた時代に生まれたシステムのことを、レガシーシステムと言われています。
レガシーシステムのメンテナンスできるエンジニアが、2025年ごろに定年で退職することで起こる「2025年の崖」という問題もあります。
COBOLを扱えるエンジニアの需要は減少傾向にあるものの、まだまだ求められていると言えます。
今回は1950年代のプログラミング言語について紹介しました。
ここまで読んでいただきありがとうございました。