質問: 1972年にアメリカのAT&Tベル研究所で開発された、コンピューターのプログラミング言語は何?
回答: C言語

タイトル: B言語
B言語(ビーげんご)は、AT&Tベル研究所のケン・トンプソン (Ken Thompson) によって開発されたプログラミング言語である。ケン・トンプソンがデニス・リッチー(Dennis Ritchie)監修の元で設計し、1969年頃に登場した。

タイトル: C言語
C言語は、AT&Tベル研究所のケン・トンプソンが開発したB言語の改良として誕生した(#外部リンクの「The Development of the C Language」参照)。1972年、トンプソンとUNIXの開発を行っていたデニス・リッチーはB言語を改良し、実行可能な機械語を直接生成するC言語のコンパイラを開発した。後に、UNIXは大部分をC言語によって書き換えられ、C言語のコンパイラ自体も移植性の高い実装のPortable C Compilerに置き換わったこともあり、UNIX上のプログラムはその後にC言語を広く利用するようになった。ちなみに、「UNIXを開発するためにC言語が作り出された」と言われることがあるが、「The Development of the C Language」によると、これは正しくなく、経緯は以下の通りである。

タイトル: プログラミング言語年表
電子式コンピュータは1940年代前後から作られ始めた。最初期のコンピュータはそれ自体で言語処理系を実行できるような能力などなく、機械語ないしごく単純なアセンブリ言語でプログラムを記述する以外になかった。また、機械語に変換する作業さえ人手で行われることもあった。しかし、プログラミングは高度に知的な努力を求められる作業であり、バグの無いプログラムを書くことやデバッグ作業の大変さは、この時代に既に指摘があった。1948年にコンラート・ツーゼがプランカルキュール (Plankalkül) についての論文を発表した。しかしながら当時は実装されず、他のプログラミング言語の開発と進化には、Superplan(英語版)と共にALGOL 58(英語版)に影響を与えた。この期間中に開発された主要なプログラミング言語には以下のようなものがある。

タイトル: プログラミング言語
そういった実際面ばかりではなく計算理論としても、1930年代から1940年代にかけて、アルゴリズムを表現する数学的抽象表現を提供するラムダ計算(アロンゾ・チャーチ)とチューリングマシン(アラン・チューリング)が考案された。ラムダ計算はその後の言語設計にも影響を与えている。1940年代、世界初の電子式デジタルコンピュータ群が製作された。1950年代初期のコンピュータであるUNIVAC IやIBM 701では機械語を使っていた。機械語によるプログラミングは、間もなくアセンブリ言語によるプログラミングに取って代わられた。1950年代後半になると、アセンブリ言語でマクロ命令が使われるようになり、その後 FORTRAN、LISP、COBOLという3つの高水準言語が開発された。これらは改良を加えられ現在でも使われており、その後の言語開発に重大な影響を与えた。

タイトル: C言語
■カテゴリ / ■テンプレートC言語(シーげんご、英: C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。ANSI、ISO、またJISにより言語仕様が標準規格化されている。

タイトル: ベル研究所
 1972年、デニス・リッチーがインタプリタ型言語Bの代わりにコンパイル型言語Cを開発し、UNIXのより良い書き直しのために採用された。 1976年、ジョージア州で世界初の光ファイバー通信システムの試験を行った。 1978年、デニス・リッチーとブライアン・カーニハンがC言語の事実上の規格書『プログラミング言語C』を出版。 1980年、世界初のワンチップ32ビットマイクロプロセッサ BELLMAC-32A がデモンストレーションで動作した(製品化は1982年)。1970年代には、それまでリレーやトランジスタで構成されていた交換機から、ベル研究所が開発したTTL集積回路を使ったプログラム内蔵式の交換機へとテクノロジーが進化した。新型交換機はイリノイ州の Naperville にあるベル研究所の施設と Lisle にあるウェスタン・エレクトリックの施設で製造された。

タイトル: APT (プログラミング言語)
APT(Automatically Programmed Tool、自動プログラム ツール)は、数値制御工作機械の命令を生成するために最もよく使われるコンピュータプログラミング言語である。ダグラス・テイラー・ロスは、APTの生みの親と言われており、1956年にマサチューセッツ工科大学(MIT)のサーボメカニズム研究所に新設されたコンピュータ応用グループの責任者として、その技術的取り組みを主導した。APTは、数値制御装置の動作と切削工具経路を記述するための座標数値計算作業を軽減するための言語である。この初期のプログラミング言語は1970年代に普及して広く使われ、現在でも国際的な標準となっている。その後、APTの派生言語が開発された。

タイトル: プログラマ
ただし、この頃のプログラマは、ハード設計者と同一である事も多く、また職業としては数学者と記載される事が多い。この頃のプログラマとして前記エイケンの元(ハーバード大学エイケン計算研究所)にいた、グレース・マレー・ホッパーがいる。1950年代に入ると、プログラミング言語が登場してくる。アセンブリ言語がこの頃登場し長らく使われた他、より人間が使用する言語に比較的近い高級言語も生み出された。前述のホッパーが1952年(あるいは言語として完成した1957年頃)にコンパイラを発明した。より完成度が高いコンパイラとしてはジョン・バッカスが1954年(あるいは1958年頃)に開発したFortranが登場し、また、ホッパーは自らのコンパイラを発展させたCOBOLを1959年に開発した。

タイトル: SNOBOL
SNOBOLは、米国AT&Tベル研究所のグリスウォルド(Ralph Griswold)らにより開発されたプログラミング言語である。

タイトル: システムプログラミング言語
System Programming Language(SPL)という名前のHP 3000コンピュータシリーズ上のプログラミング言語もあった。この言語は、オペレーティング・システムHP Multi-Programming Executiveや、その他のシステム・ソフトウェアのパーツを作るために使われていた。

タイトル: PWB/UNIX
1976年以前、AT&TでのUNIXの開発はベル研究所の少数の研究者によって細々と行われていた。しかしUNIXの使い易さが十分に広まると、研究としてではなくプログラマをサポートする道具としてUNIXを開発することが決定された。1973年、エバン・アイビーとラッド・キャナディがベル研究所の関連部門1000名の従業員のためのコンピュータセンターをサポートすべく開発を開始したもので、その後数年間は世界最大のUNIXサイトだった。Programmer's Workbench とは、プログラマのチームがソースコードを管理するツールや、他のチームとの共同作業をするためのツールを提供することを意図したものである。UNIX上でプログラムのソースコードを管理していても、そのプログラムが動作するのは他の古いオペレーティングシステム上ということが多かった。

タイトル: プログラマ
この頃の主要プログラミング言語はアセンブラ・COBOL・Fortran・BASICそして1973年に登場したC言語であり、また、その他膨大な数のプログラミング言語が登場しては、消えていった。また、スーパーコンピュータ・メインフレーム・オンラインシステム・ワークステーション・パーソナルコンピュータ・マイコン・工業用ロボットなどの組み込みシステム・ゲームなどの様々なカテゴリ分けも発生していき、プログラマ達はそれぞれに特化していくようになる。1980年代に入るとパーソナルコンピュータの爆発的普及が始まり、プログラマの中には自らのアイデアを商品化し巨万の富を得るものが出てくる。それに伴い、ソフトウェア産業という区分が発生し、企業単位でプログラム開発に業務特化したものが続々と登場してくるようになる。

タイトル: プログラミング言語
「コンピュータ以外でプログラマブルなものがある」「それのプログラミング言語がある」

タイトル: コンピュータ数値制御
これに基づき、空軍に対して数値制御等の汎用プログラミング言語開発の提案をし、それが1956年6月に受理された。同年9月、ダグラス・テイラー・ロスらは点と線をベースとして工作機械を制御する言語の概要を完成させ、その後数年かけて APT(アプト) という言語を開発した。1957年、アメリカ航空宇宙工業会 (AIA) とライト・パターソン空軍基地の空軍兵站軍団はMITと共同で完全コンピュータ制御のNCシステムのための標準策定を行った。1959年2月25日、3者共同でその成果を発表し、その席で記者たちにCNC工作機械で作ったアルミニウム製の灰皿を配布した。同じ頃、ゼネラル・エレクトリック (GE) のパトリック・ハンラッティは Giddings and Lewis Machine Tool Co. (G&L) の Numericord を使って同様の開発を行っていた。

タイトル: プログラミング言語年表
この時代には、人間にも理解しやすい言語を目指す高水準言語の開発が始まり、1950年代後半からFORTRAN、COBOL、LISP、ALGOLなど初期の代表的なプログラミング言語が登場した。

タイトル: プログラミング言語
プログラミング言語(プログラミングげんご、英語: programming language)とは、プログラムを記述するための人工言語。コンピュータプログラムを書くために考案された、正確に定義された記号と規則のしくみ。以前は、しばしばプログラム言語と表記された。

タイトル: ジョン・モークリー
これは、実際にコンピュータで使われた世界初のプログラミング言語である(その前年にプランカルキュールについての論文が発表されていたが、コンピュータ上で動作する環境はまだなかった)。Short Codeは数学的問題のための疑似コードインタプリタであり、UNIVAC IとIIで実行された。モークリーは、プログラミング言語が重要であるとの考えから、UNIVAC用のコンパイラを開発するためにグレース・ホッパーを雇うことにした。モークリーは「プログラムする」(to program)という動詞を初めて使った人物であると言われている。ただしこれは、ENIACのプログラミングについてであり、現在の意味とは異なる。

タイトル: CAM
1956年にマサチューセッツ工科大学にてAPT(アプト)と呼ばれるNCプログラム言語がダグラス・テイラー・ロスによって開発された。日本では1972年に純国産のNCプログラム言語が開発された(後にLanc(ランク)と命名)。また、APT言語から派生したFAPT言語やHAPT言語、MINIAPT言語も実用化されている。総称して自動プログラミング装置(自動プロ)と呼ばれていた。これらは、言語専用の命令を記述したプログラムを工作機械用のNCデータに変換する、コンパイラとして実装されていた。以降のCAMとの最大の違いは言語ベースのためにWYSIWYGではないことである。2008年現在でも、APT言語は、いくつかの海外製CAMのCL(カッターロケーション)ファイルとして使用されている。一方、Lanc言語もCAM同様のインターフェースを纏って使用され続けている。

タイトル: PL/M
PL/M(Programming Language for Microcomputersの頭文字)はゲイリー・キルドールが1972年に設計・開発した高水準プログラミング言語で、インテルで働くハンク・スミスのマイクロプロセッサ(英語版)のために開発された。PL/I、ALGOL、XPL(英語版)を参考にしており、マクロ処理機能があった。キルドールはワシントン大学在学中にB5500を使用しており、ESPOL(英語版)のような高水準言語を用いたシステムプログラミングに高い可能性があることを知った。Pascal、C、BASICなどのような現代の言語とは異なり、PL/Mには標準入出力機能がなかった。マイクロプロセッサのような非常に限定された環境下でのプログラミングをターゲットにしており、メモリ、I/O、割り込みなどに対して非常に効率よく直接的にアクセスできるよう設計された。

タイトル: アセンブリ言語
コンピュータの歴史の初期には、このような、プログラムによって機械語プログラムを生成することを自動プログラミングと呼んだ。ドナルド・ギリースは、まだ発明されていなかったアセンブラを開発中に、フォン・ノイマンから開発を即座に止めるように言われた、という1950年代初期ならではの逸話がある。当時は、人間が手作業でもできるような瑣末な仕事をコンピュータにさせるような時代が来るとは考えられておらず、単に時間の無駄だとノイマンは考えたのである。歴史的には多数のプログラム(OSやアプリケーション)がアセンブリ言語だけで書かれてきた。ALGOLの方言であるESPOLで書かれた Burroughs MCP (1961) が登場するまで、オペレーティングシステムはアセンブリ言語で書くのが普通だった。IBMのメインフレーム用ソフトウェアの多くはアセンブリ言語で書かれていた。

タイトル: 第五世代コンピュータ
これは人工知能アルゴリズムに対して最適な計算ハードウェア構成にすることを意味していたので、まず人工知能ソフトウェア技術を確立することが計画の最要点になった。1979年から具体的計画が進められ、その担い手となる電子技術総合研究所(現:産業技術総合研究所)の渕一博博士らは、論理型言語「Prolog」の潜在力に大きく注目していた。当時の人工知能研究の主流は関数型プログラミング言語「LISP」であったが、欧米の後追いをせずに日本独自の人工知能技術の確立を望んだ電総研は、論理プログラミングの選択を提唱した。これは自然言語処理など特定の推論分野への有用性は知られていたが、人工知能分野に対しては全くの未知数であった。論理型言語の中でもPrologは、特に簡素化された言わばBASIC的な言語であったので、その採用は取り分け欧米の研究者たちからは前衛的に受け止められた。

タイトル: 命令型プログラミング
手続きと制御フロー構文の導入で洗練されたALGOLは、バロースB5000などのコンピュータ用OS制作にも使われた。1959年から開発された事務処理用の「COBOL」と、1964年に制作された教育用の「BASIC」はどちらもソースコードを人間の可読性に合わせたテキスト寄りにした。1970年にはニクラウス・ヴィルトが開発した構造化言語「Pascal」が公開された。1972年にベル研究所のデニス・リッチーが開発した「C言語」が登場した。ヴィルトは1975年から80年代にかけてモジュラー言語「Modula」「Oberon」を設計している。1978年からアメリカ国防総省の要求でハネウェルのチームが新言語の策定を開始し、マルチパラダイム手続き型言語「Ada」が1983年に満を持して初回公開された。1980年代になるとオブジェクト指向が急成長を遂げた。

タイトル: APT (プログラミング言語)
 APTはまた、米国空軍の後援を受けており、政府機関、大学、および航空機産業協会(現在の航空宇宙産業協会) 内で組織された14社のチームを組み合わせた、世界初の主要な共同プログラミング ベンチャーであることで知られている。 APTは、グラフィカル ユーザー インターフェイスが利用可能になる前に作成されたため、部品の加工に必要なジオメトリとツールパスを指定するテキストに依存している。元のバージョンは、FORTRANが登場する前に作成されたもので、最初のANSI 標準であった。以降のバージョンはFORTRANで書き直された。APTは、FORTRANなどの他のコンピューター プログラミング言語と多くの類似点を共有している。汎用コンピューター言語は、ソース テキストを受け取り、ステートメントを、コンピューターによって内部的に処理できる命令に変換する。

タイトル: Linux
この反省をふまえて、MulticsをもじったUNIXという名前のOSがベル研究所のケン・トンプソンらのチームによって作られた。AT&Tは、独占禁止法によってコンピュータ業界への参入を禁じられていたため、UNIXのソースコードは無償で公開されることになり、大学や研究機関に爆発的に広まった。UNIXの歴史は、米国AT&Tのベル研究所において1969年から始まる。1971年に初めて公開され、初期には当時の一般的なやり方としてアセンブリ言語のみで実装されていた。その後、Unixは1973年にC言語で書きなおされた。オペレーティングシステムを高級言語で記述するという先駆的な試みは、他のプラットフォームへの移植を容易にした。

タイトル: CPL (プログラミング言語)
CPLはケンブリッジ大学の数学研究所とロンドン大学コンピュータ部の共同プロジェクトとして1960年代に開発された。言語の名前にある「統合」は共同開発であることを表している(当初はケンブリッジプログラミング言語(Cambridge Programming Language)という名前であった)。クリストファー・ストレイチーが関与していた(その他の人は論文を参照のこと)。論文が出版された1963年の時点でケンブリッジのタイタンコンピュータとロンドンのアトラスコンピュータに実装されていた。ALGOL 60の影響を強く受けていたが、ALGOLがコンパクトでエレガントでシンプルであったのに対し、CPLは巨大で、それなりにエレガントで、複雑だった。CPLは(FORTRANやALGOL方式の)科学的プログラミングと、(COBOL方式の)商用プログラミングの両方で優れていることを目指していた。