パソコン以前・初期のプログラミング言語 - - パソコン黎明期の記憶
真空管の部屋で「0と1の暗号」と戦った先人たち
コンピュータがまだ「電子計算機」と呼ばれ、一部の国家機関や巨大企業のものだった時代、プログラミングは現代とはまったく異なる作業でした。
初期の計算機には、キーボードもディスプレイもありません。人間がプログラムを入力するには、物理的なスイッチを一つずつ切り替えるか、厚紙に穴を開けた「パンチカード」を機械に読み込ませる必要があったのです。
当時のコンピュータが理解できるのは、電圧のオンとオフを示す「0」と「1」の組み合わせ、すなわち機械語だけです。人間が頭の中で複雑な数式を組み立て、それを気が遠くなるような機械語の暗号へ手作業で翻訳していく。これが当時の日常でした。
もし途中で1マスでも穴を開け間違えれば、巨大な機械はへそを曲げ、最初からやり直しになります。
なぜ人間がこれほどまでに機械の都合に合わせなければならないのか。
そんな強いストレスと徒労感の中で、ある画期的なアイデアが芽生えます。
「人間が理解しやすい言葉でプログラムを書き、それをコンピュータが自動で機械語に翻訳してくれればいいのではないか」。
この思想から生まれた翻訳プログラムこそが「コンパイラ」であり、ここから高水準言語の歴史が始まります。
数式をそのまま機械へ――FORTRANと天才バカスの挑戦
1957年、IBMのジョン・バカス率いるチームが、世界初の本格的な高水準言語を世に送り出しました。
名前はFORTRAN。数式翻訳を意味する「Formula Translation」の略です。その名の通り、数学者や科学者がノートに書く数式を、ほぼそのままコンピュータに入力できるという画期的なものでした。
現代のプログラミングを嗜む人なら馴染み深い、変数の代入や繰り返しの処理の原型がここにあります。
しかし、この画期的な言語が登場した当初、現場のベテランプログラマーたちの反応は冷ややかなものでした。「人間にわかりやすい生ぬるい言語などを使ったら、翻訳されたプログラムの実行速度が遅くなって使い物にならない」という猛烈な反発があったのです。
当時のコンピュータのメモリや処理能力は極めて貴重でしたから、その懸念は当然のものでもありました。
バカスたちは意地になりました。機械語を直接書く熟練者の効率に負けないよう、内部でコードを極限まで効率化する「最適化コンパイラ」の技術を執念で開発したのです。
結果として、FORTRANは圧倒的な計算速度を叩き出し、周囲の懐疑論を黙らせました。
この時の設計があまりにも優秀だったため、誕生から70年近くが経過した現代でも、FORTRANは死んでいません。
世界のスーパーコンピュータが競う気象予測や宇宙開発、構造解析の現場では、今なお最適化され尽くしたFORTRANのライブラリが現役の最速として走り続けています。
1円の狂いも許さない「ビジネスの共通語」COBOL
科学計算の世界にFORTRANが君臨した一方で、ビジネスの現場でも大きな変革が起きていました。
企業の給与計算や売上管理、銀行の帳票処理といった事務計算には、複雑な微分積分は必要ありません。代わりに、大量の文字データや数字を正確に仕分け、処理する能力が求められたのです。
そうして1959年に生まれたのがCOBOLです。
COBOLの開発を主導したメンバーの中に、アメリカ海軍の准将であり、コンピュータの「バグ」という言葉を広めたエピソードでも有名な女性数学者、グレース・ホッパーがいました。
彼女は「数学嫌いのビジネスマンや事務員でも、パッと見て意味が理解できる言語にしなければならない」と考えました。
そのため、COBOLの構文は徹底して英語の自然文に近づけられました。数式を使わず、動詞と目的語を組み合わせるような記述方法は、当時のビジネス社会に温かく迎え入れられます。
さらに、アメリカ国防総省が「どのメーカーのコンピュータでも動く共通言語」として採用したことで、一気に世界標準の地位を確立しました。
現代のIT業界では、COBOLはレガシーシステムの象徴として語られがちです。
しかし、裏を返せば、それだけ「1円の狂いも出さない10進数計算」の信頼性が群を抜いていた証拠でもあります。
今この瞬間も、銀行の勘定系システムや政府の基幹インフラの奥深くでは、天文学的な行数のCOBOLコードが社会の背骨を支えています。
現代のコードに繋がる、百花繚乱の生態系
FORTRANとCOBOLという二大巨頭が実用化の道を切り拓く傍らで、学術の世界でも現代へ直結する重要な種まきが行われていました。
ひとつは、1958年にジョン・マッカーシーによって開発されたLISPです。
「リスト処理」に特化したこの言語は、記号や概念の操作が極めて得意だったため、驚くことにこの時代にして早くも「人工知能(AI)研究の標準言語」となりました。
データとプログラムを同じように扱うという先進的な設計は、現代の関数型言語の源流としていま再評価されています。
もうひとつ、商業的には成功しなかったものの、歴史的に極めて重要な役割を果たしたのがALGOLです。
欧米の研究者たちが共同で開発したこの言語は、プログラムを特定のブロックで区切る「構造化」の概念を世界で初めて明確に定義しました。
このALGOLの遺伝子が、その後のPascalへと受け継がれ、やがてC言語を生み出し、現代のJavaやPython、JavaScriptへと脈々と繋がっていくことになります。
もしALGOLが存在しなければ、私たちが今使っているコードの見た目は、まったく違うものになっていたかもしれません。
ソフトウェアの自立、そして「器」の進化へ
こうして1950年代から60年代にかけて、コンピュータは単なる「計算する機械」から、ソフトウェアの入れ替えによって「何にでも化ける万能の道具」へと脱皮を遂げました。
人間が機械に歩み寄るのではなく、機械が人間の言葉に歩み寄る。このパラダイムシフトこそが、現代の豊かなIT社会の出発点だったと言えるでしょう。
現代の私たちがクラウドやAIを軽やかに操れるのは、かつて0と1の暗号の海に飛び込み、人間に「言葉」を取り戻そうとした先人たちの執念の積み重ねがあるからです。
人間が自由な言葉を手に入れたことで、ソフトウェアの可能性は無限に広がっていきました。
しかし、それを受け止めるための「器」であるハードウェアは、まだ部屋を埋め尽くすほど巨大で、一部の限られた特権階級のものでした。
言葉は揃った。では、この強力な道具が、どうやって私たちの机の上、そしてポケットの中に収まるサイズへと小さくなっていくのでしょうか。
時代はついに、ハードウェアの劇的な地殻変動、すなわちパーソナルコンピュータの誕生へと針を進めることになります。
【徒然メモ】初期の主な言語の特徴
1 .FORTRAN(フォートラン)
科学技術計算の開拓者
世界初の本格的な高水準言語(機械語ではなく、人間に理解しやすい英語や数式に近い言語)です。
【開発の背景と目的】
・「数式の翻訳者」
1957年、IBMのジョン・バカスらによって開発。名前の由来は「FORmula TRANslation(数式翻訳)」。
・暗号からの解放
それまでは「0101…」の機械語や、それに近いアセンブリ言語で、気が遠くなるようなステップを書いていた科学者やエンジニアを、複雑なコードの苦痛から解放するために作られました。
【言語の特徴】
・数式をそのまま書ける
科学者が使い慣れた数式をほぼそのままプログラムとして記述できる、圧倒的な扱いやすさ。
・爆速の処理
「人間にとって扱いやすい言語は、実行速度が遅くなる」という当時の常識を覆し、熟練のプログラマーが機械語で書いたものに匹敵する超高速な計算処理を実現しました。
【現代へ続く遺産】
・今も現役
誕生から70年近く経った現在でも、スーパーコンピュータによる気象予測、宇宙開発、構造解析などの大規模なシミュレーション分野では、最適化されたFORTRANのライブラリが走り続けています。
2.COBOL(コボル)
ビジネス計算の絶対王者
企業の事務処理(伝票処理、給与計算、会計)を自動化するために生まれた、ビジネス特化型言語です。
【開発の背景と目的】
・事務員でも読める言語を
1959年、アメリカ国防総省が主導し、グレース・ホッパー(通称:コンパイラの母、バグの語源となったエピソードで有名)らの尽力によって開発。
・標準化の必要性
当時、コンピュータメーカーごとにバラバラだった言語を統一し、どの会社の機械でも動く「共通のビジネス言語(COmmon Business Oriented Language)」を目指しました。
【言語の特徴】
・「英語の文章」そのもの
数学嫌いのビジネスマンでも理解できるよう、徹底して英語の自然文に近い構文(ADD A TO B GIVING C など)を採用。
・お金の計算に強い
科学計算のような複雑な関数ではなく、大量のデータ(帳票)を正確に処理すること、そして「1円の狂いも許されない」正確な10進数(固定小数点)計算に特化しています。
【現代へ続く遺産】
・社会の隠れた背骨
銀行の勘定系システムや政府の基幹システムなど、世界の決済インフラの裏側では今も天文学的な行数のCOBOL資産が動いています。「DX(デジタルトランスフォーメーション)」の文脈で、レガシーシステムの象徴としてビジネスコラムで非常によく取り上げられるテーマです。
3.その他
パソコン前夜の生態系を広げた言語たち
FORTRANとCOBOLの二大巨頭の脇で、後のパソコン文化(BASICやC言語、AIなど)の種をまいた重要な言語たちです。
(1)LISP(リスプ / 1958年〜)
・AI(人工知能)の始祖
ジョン・マッカーシーによって開発された、FORTRANに次いで2番目に古い高水準言語。「リスト処理(LISt Processing)」に特化し、記号や概念を扱うのが得意だったため、初期の人工知能研究の標準言語となりました。現代の関数型言語の源流でもあります。
(2)ALGOL(アルゴル / 1958年〜)
・現代プログラミングの「文法」を作った存在
欧米の研究者コミュニティが共同開発した言語(ALGOrithmic Language)。商業的には大成功とは言えませんでしたが、プログラムをブロック(begin ... end)で囲む構造化の概念を確立しました。これが後の Pascal、C言語、Java、Python など、現代のほぼすべての主要言語の直接の先祖となっています。
(3)PL/I(ピーエルワン / 1964年〜)
・全部入りを目指した巨大言語
IBMが「科学技術のFORTRAN」と「ビジネスのCOBOL」を合体させ、これ一本で何でもできる万能言語を目指して開発。しかし、機能が肥大化しすぎて複雑になり、パソコンのような小さな環境には移植しづらいという教訓を後世に残しました。
関連記事
・電卓と計算機の歴史と技術的進化
書籍の紹介
・僕らのパソコン 30年史 ニッポン パソコンクロニクル Kindle版
SE編集部 編集
翔泳社(2012/12/20)
写真で振り返る、ニッポンのパソコン歴史教科書。30年以上を通して変化したパソコンを2部構成で、写真を多用し世相にも触れながら、時間の流れの中で大きな変化をわかりやすく解説。第1部を年代ごとのトピックの解説にあて、当時の開発者や関係者への「証言(ターニングポイント)」を盛り込み、開発秘話などを明らかにしている。第2部では、PCアーキテクチャなどをテーマごとにまとめている。
( ※ 書籍の解説等は原則としてリンク先(Amazon)における解説をベースに記載しています。詳細内容はリンク先を参照願います。)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!