ALGOLの概要
ALGOL(アルゴル)は、命令型
プログラミング言語ファミリーの一つであり、その名前は「
アルゴリズム言語」を意味する英語の「algorithmic language」に由来しています。1950年代中ごろに開発されて以来、多くの
プログラミング言語に影響を与え、特にACMや教科書、学術論文において
アルゴリズム記述のスタンダードとして広く使われました。現代の数多くの
プログラミング言語が「ALGOL系」「ALGOL風」と位置付けられており、これは同世代のFORTRAN、LISP、
COBOLに対する成功を物語っているとも言えます。
主なバージョン
ALGOLには、以下の3つの主要なバージョンがあります。
1.
ALGOL 58:最初はIAL(International Algebraic Language)として提案されました。
2.
ALGOL 60:1960年頃にX1 ALGOL 60として実装され、1963年に改訂されました。
3.
ALGOL 68:1968年に発表され、1973年に改訂され、可変配列や並列処理の機能など多くの拡張が導入されました。
これらのバージョンは、それぞれの時代のニーズに応じた機能改善がなされ、多くの後発言語の基礎となっています。
歴史的背景
ALGOLの起源は1950年代後半に遡り、当時アメリカで作られていたFORTRANなどの言語に対抗する形で、
ヨーロッパの学術研究者たちが世界共通の
プログラミング言語として開発しました。
1958年にはチューリッヒ工科大学で国際会議が開かれ、そこでALGOLが提案されました。
言語設計当初から、ALGOLでは「reference syntax」「publication syntax」「implementation syntax」という3種類の構文が定義されています。これにより、キーワード名や数値フォーマットを採用する際の柔軟性が生まれました。たとえば、入出力機能が当初の仕様に含まれていなかったため、商用にはあまり使用されなかったものの、その影響力は計り知れません。
ALGOLの特長
ALGOLは特定のハードウェアに依存しない抽象的な
アルゴリズムの記述を目指して設計されており、これはその後の多くの言語に多様性を与える要因となりました。その中でも、ALGOL 60は再帰呼び出しやブロック構造を初めて採用した言語の一つとして知られています。具体的には、「BEGIN」と「END」による制御構造の可視化が特徴であり、この構文は他の多くの言語にも影響を与えました。
さらに、ALGOLの設計では引数渡しに2つの方式—値渡しと名前渡しがあり、名前渡しは特に
プログラミング言語設計の上で興味深い技法として注目されています。スコープ管理や変数操作の方法が、後の
プログラミング言語に多大な影響をもたらしました。また、ALGOLの文法および意味論の純粋性は、数多くの理論的研究に寄与しました。
言語の影響と後継
ALGOL 60の登場は、その後の多くの
プログラミング言語に深い影響を与えました。たとえば、SchemeなどのLisp方言はその静的スコープの概念がALGOLから受け継がれています。ALGOL 68においては、より複雑な仕様が登場しましたが、実用性の面での課題から普及はあまり進みませんでした。
現在の状況
ALGOLは、1960年代を通じて多くの学術的な研究や実用的なプログラミングに影響を与え続けており、その構造や設計哲学は現在でも多くの
プログラミング言語に見られます。
このように、ALGOLは単なる
プログラミング言語の一つにとどまらず、
プログラミング言語の歴史の中で重要な役割を果たしてきたのです。