Pascal 日和 ホームページ








ソースネクスト

プログラミング言語年表


年表で見るプログラミング言語


 Pascal言語Modula-2言語Ada言語をPascal系言語と考え、手続き型のコンパイル言語やプログラミング技法の提唱と年代的な位置関係を理解するために以下の表を作成しました。ALGOL系としないのは、ほとんどの構造化言語がALGOL系と言っているので、上記3つの言語をPascal系としました。Pascal言語とModula-2言語は、Niklaus Wirth氏により開発され、Ada言語はModula-2の影響を強く受けています。Adaの設計者Jean Ichbiah氏もNiklaus Wirth氏の協力があったようです。
 Niklaus Wirth氏はModula-2の後、オブジェクト指向を取り入れたOberon言語/Oberon-2言語を開発していますが、標準化規格の対象にはなっていないようなので今回は除外しました。その代わり、Modula-2がISO規格化されたときにオブジェクト指向やジェネリックスが導入されています。その他にも多数の言語がありますが、今回は割愛しました。

 プログラミング言語やプログラミング技法を考えるとき、構造化プログラミングモジュールプログラミング抽象データ型(ADT)オブジェクト指向プログラミングは重要なキーワードとなるので、以下の表に追加しました。

年(西暦) イベント
1954 FORTRAN言語
FORTRAN(フォートラン:FORmula TANslation)は、1954年にIBMのジョン・バッカス(John Backus)を中心に開発され、1957年に最初のコンパイラがリリースされた。科学技術用として広く使用された。
その後、FORTRAN 66、FORTRAN 77、Fortran 90、Fortran 95、Fortran 2003、Fortran 2008と標準規格として制定されている。
現在、GNU FortranはFortran 95/2003/2008を対象にしている。
1958 ALGOL言語
ALGOL(アルゴル:ALGOrithmic Language)は、IBMのFORTRANに対抗して、ヨーロッパの研究者が世界共通のプログラミング言語として開発し、チューリッヒで行われた国際会議で提案された。この時のALGOLをALGOL 58と呼ぶ。
プログラムの構文にコードブロック(begin 〜end)を導入し静的スコープが適用された。論文などのアルゴリズム記述に広く使用された。よく「ALGOL系言語」という言葉が使用されるほど後の言語にも大きな影響を与えた。
ログラミング言語の文法を記述するバッカス正規記法(Bakus normal form)はALGOL-58にあわせてジョン・バッカス(John Backus)によって考案された。
1959 COBOL言語
COBOL(コボル:COmmon Business Oriented Language)は米国の国防総省のグレース・ホッパ(Grace Hopper)を中心に開発され、CODASYL(Conference on Data Systems Languages、データシステムズ言語協議会)によって最初の仕様書が承認された。最初の仕様をCOBOL-60と呼ぶ。
CODASYLがCOBOL言語の標準化を行っている。COBOL-61、拡張COBOL-61、COBOL-65、COBOL-68、COBOL-69、COBOL-70、COBOL-73、COBOL-76、COBOL-78、COBOL-81、COBOL-88、COBOL-93。
1960 ALGOL-60言語
ALGOL-58は仕様の開発で、その実際のコンパイラの実装がALGOL-60として公開された。
バッカス正規記法(Bakus normal form)もALGOL-60向けに拡張・改訂されバッカス・ナウア記法(BNF、Bakus-Naur Form)となった。現在はこのBNFを拡張した拡張バッカス・ナウア記法(Extended Bakus-Naur Form)が一般的に使われている。
1962 Simula言語
Simula(シミュラ:SIMUlation Language / SIMple Universal LAnguage)はノルウェーのクリステン・ニガード(Kristen Nygaard)とオルヨハン・ダール(Ole-Johan Dahl)により開発された。SIMULA Iが1962年、SIMULA-67が1967年。
SIMULA自体はあまり使われることは無かったが、Simula 67でオブジェクト、クラス、サブクラス、継承、仮想関数、ガベージコレクションなど、オブジェクト指向プログラミングの基本概念が盛り込まれている。後のオブジェクト指向言語に大きな影響を与えている。
1964 BASIC言語
BASIC(ベーシック:Beginners' All-purpose Symbolic Instruction Code)は、米ダートマス大学ジョン・ケメニー(John Kemeny)教授とトーマス・カーツ(Thomas Kurtz)によって初心者向けのプログラミング言語として開発された。
その後、パソコンやポケコンの普及で機能を抑えたインタープリターとして様々な亜種が登場した。現在のマイクロソフトのVisual BasicやOfficeのVBAなどもBASICの一つである。
1965 PL/I言語
PL/I(ピーエルワン:Programming Language One)は科学技術計算向けのFORTRANと事務処理向けのCOBOLの双方の特徴を生かしてIBMにより開発されたプログラミング言語。言語仕様が大きいため、主にメインフレームで使用される。1979年にISOで標準化された。その後もIBMによりバージョンアップが続いている。2001年以降IBMのコンパイラ名称はEnterprise PL/Iとなっている。
1968 第1回NATOソフトウェア工学会議開催
ソフトウェアの規模が大きく複雑になるにつれ、コストの増加、納期の遅延、品質の低下が起こり、このままでは危機的な状況になることに対してソフトウェア危機が叫ばれた。「ソフトウェア危機(software crisis)」という言葉は、第1回NATOソフトウェア工学会議(The NATO Software Engineering Conferences)の参加者達により作られた。
「ソフトウェア工学(software engineering)」という言葉もこの会議で初めて使われた。これにより、プログラミング言語やプログラミング技術だけではなく、ソフトウェア開発工程の手法についても多く研究されるようになった。
1969 構造化プログラミングの提唱
エドガー・ダイクストラ(Edsger Dijkstra)によって「構造化プログラミング(Structured Programming)」が提唱された。プログラミングからGOTO文を排除し、手続きの呼び出しと構造化制御構文(順次・反復・分岐)への転換を促した。
1970 Pascal言語
Pascal(パスカル:フランスの数学者Blaise Pascalにちなんで名付けられた)は、スイスのニクラウス・ヴィルト(Niklaus Wirth)によって開発された。
Pascal言語は2つの主要な目標に基づいて開発されている。第1の目標は、プログラミングの教育に適した言語にすること。第2の目標は、Pascal言語の処理系の開発であり、現時点で使用できるコンピュータ上で信頼性が高く、しかも効率の良いものを実現することである。
そのため、多くの教育現場や研究に使用されている。また、アルゴリズも表現もPascal言語で書かれているものが多い。
1972 C言語
C言語(シー:C-language)はベル研究所(Bell Laboratories)のデニス・リッチー(Dennis Ritchie)によって開発された。C言語はUNIXの基本ソフトを作るために開発された。
抽象データ型
抽象データ型(Abstact Data Type:ADT)が提唱された。
1974 『Programming with Abstract Data Type』発表
Stephen Zillesとバーバラ・リスコフ(Barbara Liskov)によって書かれた抽象データ型を使用したプログラミングに関する論文。
CLU言語
CLU言語(名前の由来は クラスタ CLUster)はバーバラ・リスコフ(Barbara Liskov)によって開発された。抽象データ型を扱うプログラミング言語である。
1978 『The C Programming Language』出版
ブライアン・カーニハン(Brian Kernighan)とデニス・リッチー(Dennis Ritchie) によって書かれたC言語についての書籍。著者名の頭文字からK&Rと略され、C言語が標準化されるまでC言語のリファレンスとなっていた。邦訳『プログラミング言語C -- UNIX流プログラム書法と作法』は1981年に出版された。
1979 Modula-2言語
Modula-2言語は、ニクラウス・ヴィルト(Niklaus Wirth)によって開発された。PascalとModulaを直接の祖先とし、モジュールプログラミングおよび多重プログラミングの概念を持つプログラミング言語として作成された。文法がPascalよりModulaに似ているためModula-2という名称となった。Modulaについての情報はほとんど無い。
1980 Smalltalk言語(Smalltalk-80)
Smalltalk言語(スモールトーク)はXEROX社で開発された。開発は1972年から始まり、1980年に公開された。オブジェクト指向プログラミングの手本となり、以降のオブジェクト指向プログラミング言語に大きな影響を与えた。
1981 『Why Pascal is Not My Favorite Programming Language』発表
C言語のブライアン・カーニハン(Brian Kernighan)によるPascal批判の論文。
1983 C++言語
C++言語(シープラスプラス)は、ビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって開発された。C言語に大規模ソフトウェア開発に有用な機能を取り込み、クラス機能の追加や型検査機能などの強化を行った。
Ada言語(Ada 83)
Ada言語(エイダ:史上初のプログラマと言われるイギリスの女性Ada Lovelaceにちなんで名付けられた)は、アメリカ合衆国国防総省が信頼性・保守性に優れたプログラミング言語の開発のために国際入札を行い開発した。採用されたのはフランスのジーン・イシュビア(Jean Ichbiah)チームの設計である。1987年にISOで標準化された。
1985 『The C++ Programming Language』出版
ビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって書かれたC++言語についての書籍。この時点での事実上のC++言語のリファレンスとなった。
1989 C言語(C89、C90)
C言語が、1989年にANSI、1990年にISOで標準化され、それぞれC89、C90と呼ばれる。
C++言語(Version 2)
C++言語に、多重継承と抽象クラス、静的メンバ関数、constメンバ関数、protectedメンバ等の機能が追加された。
1990 『The Annotated C++ Reference Manual (ARM)』出版
マーガレット・エリス(Margaret Ellis)、ビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって書かれたC++言語のリファレンスマニュアル。
後のC++言語の標準化の土台となった。
Pascal言語(Standard Pascal)
PascalがISOで標準化された。この規格は標準Pascalとして定義される。
さらに、レベル-0とレベル-1に分類される。すべて満たすとレベル-1で、整合配列の実装を省いたものがレベル-0となる。
Pascal言語(Extended Pascal)
Pascalの拡張仕様がISOで標準化された。この規格は拡張Pascalとして定義される。
Modula-2の様なモジュール機能が導入された。
1995 C言語(C95)
C言語のC89の仕様に非英語圏のためのワイド文字ライブラリがが追加されて。
現在使用されているCコンパイラは、C89/C90/C95に準拠したものが多い。
Ada言語(Ada 95)
Ada言語にタスキング機能の改善やオブジェクト指向を導入しISO規格が改定された。この規格はAda 95と呼ばれる。
1996 Java言語(JDK 1.0)
Java言語の最初のバージョン。
Modula-2言語(Part 1:Modula-2, Base Language)
Modula-2言語がISOで標準化された。この規格はパート1で基本言語版である。
1997 Java言語(JDK 1.1)
Java言語に国際化対応、JDBCなどの追加。
1998 Java言語(Java 2)
J2SE 1.2〜J2SE 5.0(2004年)までJava 2と呼ばれ機能拡張が行われた。
C++言語(C++98)
C++言語がISOで標準化され、C++98と呼ばれる。
Modula-2言語(Part 2:Generics Modula-2)
Modula-2のISO規格のパート3が制定された。Modula-2のジェネリックスについての規格である。
Modula-2言語(Part 3:Object Oriented Modula-2)
Modula-2のISO規格のパート3が制定された。Modula-2のオブジェクト指向についての規格である。
1999 C言語(C99)
C言語にC++の機能を一部取り込んだり、その他機能拡張を行いISO規格が改定された。この規格はC99と呼ばれる。
2003 C++言語(C++03)
C++言語のC++98についての不具合の改訂などを行い、2003年版が制定された。この規格はC++03と呼ばれる。
2005 Ada言語(Ada 2005)
Ada言語に8/16/32ビットのUnicodeサポートや多重継承などの機能追加を行いISO規格が改定された。この規格はAda 2005と呼ばれる。
2006 Java言語(Java SE 6)
命名がJ2SEからJava SEとなり機能拡張が行われている。
最新はJava SE 7(2011年)。
2011 C言語(C11)
C言語でUnicodeに標準で対応するなど、機能の改訂(追加・変更・削除)を行ったISO規格の最新版。この規格はC11と呼ばれる。
C++言語(C++11)
C++言語にマルチスレッドやジェネリックプログラミングのサポートや標準C++ライブラリの拡張を行ったISO規格の最新版。この規格はC++11と呼ばれる。
2012 Ada言語(Ada 2012)
Ada言語の機能追加やライブラリの拡張を行ったISO規格の最新版。この規格はAda 2012と呼ばれる。