ALGOL
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

この項目では、プログラミング言語について説明しています。ペルセウス座のβ星については「アルゴル」をご覧ください。

ALGOLALGOLのロゴ
パラダイム手続き型プログラミング構造化プログラミング命令型プログラミング 
登場時期1958年 (66年前) (1958)
設計者バウアー(英語版)、 ルティシュハウザー、 サメルソン(英語版)、 バッカスパリスナウア、 ファン・ワインハールデン(英語版)、 マッカーシー
型付け強い静的型付け
方言ALGOL 60、ALGOL 68
影響を受けた言語FORTRAN 
影響を与えた言語PascalC言語PL/ISimulaCPLAdaMathematica
テンプレートを表示

プログラミング言語>>他のプログラミング言語

カテゴリ / テンプレート

ALGOL(アルゴル)は、命令型プログラミング言語ファミリーの1つ[注 1]。名前「ALGOL」は「アルゴリズム言語」を意味する英語「algorithmic language」に由来する[1]。1950年代中ごろに開発され、多くの言語に影響を及ぼし、ACMや教科書や学術論文などでアルゴリズム記述のデファクトスタンダードとして30年以上使われた[2]。現代の多くの言語が「ALGOL系」あるいは「ALGOL風」(algol-like) とされているという意味で[3]、ほぼ同世代の高水準言語である FORTRANLISPCOBOL に比べて最も成功したと言うこともできる。FORTRANで明らかとなった問題を防ぐよう設計され、BCPLBPascalSimulaCといった様々なプログラミング言語に影響を与えた。ALGOLは「begin と end で囲む」という構文によるブロック構造を導入し、制御構造を自在に入れ子(ネスト)にできる初の広まった言語となった。また構文の形式的定義を真剣に検討した最初のプログラミング言語でもあり、Algol 60 Report[4] で導入されたバッカス・ナウア記法は、その後のコンピュータ言語等の構文の形式的定義を示す手法として(プログラミング言語だけに限られず)定番の記法となっている。
主なバージョン

次の3つの主要な仕様が存在する。後ろについている数は最初に発表された年を表している。
ALGOL 58
(英語版)
当初 IAL (International Algebraic Language) という名称で提案された[5]
ALGOL 60
1960年中ごろに X1 ALGOL 60 として実装されたのが最初で、1963年に改訂された[4][6]
ALGOL 68(英語版)
1968年に発表され、1973年に改訂された[7]。可変配列、スライス、並列性、演算子識別、その他の拡張可能な機能などが新たに導入されている。

IAL (ALGOL 58) は後の様々なプログラミング言語(いわゆるALGOL系言語)に大きな影響を及ぼし、一般にそれらの先祖とみなされている。また、ALGOLの仕様で示された中間コードは ALGOL object code と呼ばれ、単純でコンパクトなスタックベースの命令セットアーキテクチャであり、計算機科学の分野でコンパイラ構築の教育に使われ、他の高水準言語の実装にも使われた。
歴史

1950年代後半、FORTRAN等の言語が米国で作られていたのに対抗して、ヨーロッパの学術研究者が世界共通のプログラミング言語として開発した。ALGOLは1958年チューリッヒ工科大学で行われた国際会議で提案されたものが起源とされる。現代のプログラミング言語と比べて著しく異なる点のひとつに、reference syntax、publication syntax、implementation syntax という3種類の構文がある、ということが挙げられる。当時は文字コードの標準化以前であり、また数学の数式のように印刷したいという要望などもあったため、そのようなことになっている(違いは具象の違いであり、抽象構文は共通である)。これにより、キーワード名や小数点に使用する記号(カンマかピリオドか)を選ぶことなどもできた。

ALGOL 58 は主に欧米の計算機科学者がアルゴリズム研究開発に用いた。商用アプリケーションにはあまり採用されていない。その原因は入出力機能が標準仕様に含まれていなかったためであり、またバロース以外の大手コンピュータメーカーがこの言語に興味を示さなかったためである。

ジョン・バッカスは ALGOL 58 を主たる対象としてプログラミング言語の文法を記述するバッカス正規記法 (Bakus normal form) を開発した。ピーター・ナウアはそれを ALGOL 60 向けに拡張・改訂。ドナルド・クヌースバッカス・ナウア記法 (Bakus-Naur Form) と改称することを提案した[8]

ピーター・ナウアは ALGOL Bulletin という学術誌の編集者としてこの言語の国際的議論に参加し、1959年11月にヨーロッパの言語設計グループの一員に選ばれた。そして Algol 60 Report の編集者となり、1960年1月にパリで開催された ALGOL 60 についての国際会議の結果を発表した[9]

このパリでの会議(1960年1月1日から16日まで開催)には以下の人々が参加している。
ヨーロッパからの参加者
フリードリッヒ・L・バウアー(英語版)、ピーター・ナウアハインツ・ルティシュハウザー、クラウス・サメルソン(英語版)、Bernard Vauquois、アドリアン・ファン・ワインハールデン(英語版)、Michael Woodger
アメリカからの参加者
ジョン・バッカス、Julien Green、Charles Katz、ジョン・マッカーシーアラン・パリス、Joseph Henry Wegstein

アラン・パリスはこの会議について、「会合は疲れさせるもので、果てしなく、活発だった。ある人のよいアイデアが悪いアイデアと共に却下されると、その人は機嫌を損ねた。それにもかかわらず、期間中ずっと勤勉さが持続した。13人の作用は素晴らしいものだった」と評している。

ALGOL 60 はその後の多数の言語に影響を与えた。アントニー・ホーアは ALGOL 60 を「時代に先行していて、それまでの言語の改良だっただけでなく、その後のほぼ全ての後継者の先駆者となった言語」と評している[10]SchemeというLisp方言の設計者は、その静的スコープは ALGOL からの影響だと述べている。またSchemeの仕様の名称 Revised Report on the Algorithmic Language Scheme もALGOLへのオマージュである[11]

1968年には、後継として ALGOL 68 が開発された。ALGOL 68 では、2段階文法のワインハールデン記法で文法が記述された。ALGOL 60 の後継言語制定に至るまでの候補としてニクラウス・ヴィルトの ALGOL W、日本で設計された ALGOL N 等もあったが最終的に ALGOL 68 が後継として制定された。しかし、あまりに複雑かつ巨大な仕様のため ALGOL 68 コンパイラの実装は難しく、またワインハールデン記法が難解なこともあり実用的には、ほとんど普及しなかった。そのため単に ALGOL と言った場合にはALGOL 68 ではなくて ALGOL 60 やその方言を指すのが一般的である。

言語の標準化としては、IFIP TC2/WG2.1 において ALGOL 60 が制定された。その後、遅々として標準化作業はすすまず、1984年になって、ISOで ALGOL 60 相当の言語が標準化されたのみである。日本では、かつて ALGOL 60 の言語規格と入出力ライブラリ規格をそれぞれJIS規格で制定していたが (JIS C 6210-6219)、1983年(昭和58年)9月1日付で廃止された。
ALGOLとプログラミング言語研究

ピーター・ランディン(英語版)が指摘したように、ALGOLは命令型の副作用と(名前渡しの)ラムダ計算を一体に結合した初の言語である。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:54 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef