プログラミング言語の歴史
1950年代の高水準言語登場により、プログラム開発は徐々に身近な作業になりました。2000年以降は多様化が進み、プログラム言語は派生バージョンを含むと1,000種類以上と言われています。以下はプログラム言語の分類となります。
・機械語 コンピュータのプロセッサ(CPU)等固有の言語です。電子計算機登場時より利用されています。主に二進数で表され、機械固有の処理を記述します。そのままでは人間が解読することは困難です。
・アセンブリ言語 機械語を、人間が判別できるテキスト表記で表したものです。命令語はニーモニックで表記し、編集の効率が向上しました。1950年代に機械語へ変換するためにアセンブラが開発され、処理効率を高めるためにマクロも提供されています。この編集や判読は電子計算機固有の専門性が求められます。
上記の機械語・アセンブリ言語を、低水準言語(または低級言語)と呼びます。対するコンパイラ言語・インタープリタ言語が、高水準言語(または高級言語)となります。詳細は以下の通りです。
・コンパイラ言語 人間の判別しやすい文字列や識別子で構成されます。コンパイラが言語上のエラー判別を行い、中間コードやアセンブリ言語を生成します。C言語・C++・Java・C#等は、代表的なコンパイラ言語です。
・インタープリタ言語 Perl・Ruby・Pythonが、主要プログラム言語です。逐次処理でコード解釈されますので、編集から実行まで一気通貫で行うことができます。
なおスクリプト言語では、高機能化により実行時コンパイラ(Just-In-Time Compiler:JITコンパイラ)の搭載が進んでいます。もはやインタープリタ言語の分類を超えた高機能化が進んでいます。
プログラミング言語の成り立ち
プログラミング言語は、搭載されるコンピュータによって登場し進化してきました。そのため、ここではコンピュータの歴史に紐づけ、プログラミング言語をお伝えしていきます。プログラム言語がどうやって作られたかは、以下の変遷からたどることができます。
プログラミング言語の歴史(1900年以前)
古代ギリシャからアナログコンピュータの仕組みがありましたが、ここでいうコンピュータの原点は、1600年代のパスカルによって考案された機械式計算機や、ライプニッツによる歯車を用いた計算機です。
1800年に登場した解析機関や、パンチカードをベースに会計処理機器が登場しました。その後パンチカードを用いた集計機械を用いてIBMの事業がスタートしました。
パンチカードでは、パンチカードに動作を記録することで所定の処理を行うことが可能でした。このように、繰り返し同じ処理を実行させるために、プログラミングの考え方が進んでいきました。
プログラミング言語の歴史(1945年以前)
第二次世界大戦以前は、アナログ計算機が主流でした。アナログ計算機は、歯車の位置や動作あるいは電圧や電流などの物理量を用いて解を求めます。主な用途は軍事目的でした。アナログ計算機ではプログラミングとして所定の物理量を設定します。
プログラミング言語の歴史(1945年から1955年)
アメリカで開発された、ENIAC(Electronic Numerical Integrator and Computer)は、真空管によって演算処理を行います。そのため、初のデジタル計算機として知れ渡りました。
EDSAC・EDVACと開発が進み、十進数から二進数へデータ型が改良され、現在のコンピュータの原型が作り上げられました。フォンノイマン型アーキテクチャと言われる、プログラム内蔵方式のコンピュータとして広く認知されました。
初期のデジタル計算機までは、ワイヤードロジックと言う結線を行いプログラムを格納していました。その後パンチカードや紙テープからプログラムを読み込むことが可能となりました。コンピュータへの命令は、電子計算機固有の命令つまり機械語のみで、編集しやすいようにアセンブリ言語が一部導入されました。
従来、手作業でアセンブリ言語から機械語に変換する必要がありました。1950年代に入るとアセンブラが考案され、機械語への変換が手作業から解放されました。
プログラミング言語の歴史(1955年から1970年)
トランジスタが発明されたことで、デジタル計算機の進化が続きます。1955年IBMによりトランジスタ計算機が市販化され、他のメーカーも追従しました。1967年、フロッピーディスクが開発され、パンチカードと紙テープが徐々に磁気媒体に置き換わっていきます。
大量のプログラムコードが格納可能となったことで、高水準言語の開発が始まりました。1957年から1960年までに、FORTRAN・ALGOL・RPGが開発されます。
FORTRANは科学技術計算向けに標準的に利用されることになり、高水準言語の原点と言える言語です。ALGOLは構造化プログラミングの礎を築き、RPGはビジネス用途の最初のアプリケーション開発言語(4GL)です。
1960年代に入ると、事務処理言語であるCOBOL・人口知能言語言語のLISPが登場します。さらに、インタープリタのBASICが登場しました。科学技術計算と事務処理に対応可能なPL/Iも登場しました。
プログラミング言語の歴史(1970年から1980年)
1970年台前半にインテルからDRAMや4ビットマイクロプロセッサが登場し、8ビットマイクロプロセッサ登場によりシステム多様化が図られます。1970年代中頃には、スーパーコンピュータやポータブルコンピュータが登場しました。マイクロソフトやApple Computer(現Apple Inc.)が創業し、PC向けOSや表計算ソフトが登場しました。
1970年代にはALGOLに影響を受けたPascalが登場し、構造化プログラミングが一般化しました。さらに、B言語を元にC言語が開発され、UNIXカーネルに採用されました。人工知能言語としてはProlog登場により人工知能ブームが起きます。
オブジェクト指向言語として登場したSmalltalkにより、オブジェクト指向プログラミングの下地ができたのもこの年代です。
プログラミング言語の歴史(1980年から1990年)
ワークステーションが発売され、OSの高機能化が進んでいきます。UNIXが身近になり、初のWindowsが登場しました。その過程でTCP/IPが浸透し、ネットワーク接続とGUIがコンピュータ操作環境をより快適に利用できるよう環境を整えました。
この年代ではオブジェクト指向プログラミングが進み、C言語をベースにC++へと発展しました。Smalltalkの仕様を受け継いだObjective-Cも登場しました。さらにスクリプト言語であるPerlが開発されました。
プログラミング言語の歴史(1990年から2000年)
Windowsが3.0となり、実用性が向上しました。さらにLinux(386BSDからのNetBSD、FreeBSDなどのBSD系)が発表され、PCのOSの選択肢が広がりました。1993年にはWorld Wide Webが無償公開され、Mosaicを利用した活用が一気に増えていきます。Windows 95やWindows 98登場により、PCとインターネットの利用がさらに一般的になりました。
プログラム言語では、スクリプト言語が多様化しPython・Rubyが登場します。同様にビジュアル開発が進み、Microsoft Visual BasicやVisual Basic for Application(VBA)により、Microsoft Officeにマクロ言語が搭載されました。
1995年に登場したJavaは、現在でも主要アプリケーション開発言語として組み込み機器からサーバまで活用されています。
プログラミング言語の歴史(2000年以降)
2000年以降は、インターネット利用が一般的になり、FTTH等の高速ネットワーク網も整備されました。この10年で従来の携帯がスマートフォンへ移行し、通信も3G・4Gそして5Gと高速化が進んでいます。スマートフォンはAndroidとiOSで開発環境とアプリケーション配信環境が充実し、生活を豊かにしています。
IoTの利用も増えており、ビッグデータ分析等の新しいニーズも広がりつつあります。
ここではC#や.NETフレームワークにより、開発基盤の統合が進んでいきます。既存言語を活用した開発フレームワークの活用が進み、Scala・Kotlin・Swift等が開発されました。さらに既存の言語の特徴を統合したGoも登場しています。多様化するニーズと利便性向上により、プログラミング言語もさらに進化を続けています。
プログラミング言語の歴史を学ぶ書籍と学習方法
プログラミング言語を理解するために、系統図や年表・一覧に目を通したいところです。この歴史を学ぶ観点では以下の2冊の参考書をおすすめします。
プログラミング言語大全
本書は、プログラミング言語の考え方から始まり、100以上のプログラミング言語を分類し紹介しています。主要言語からマイナー言語までカバーしており、初心者および新人プログラマーを対象としています。
▪著者:クジラ飛行机 ▪ページ数:216ページ ▪出版社:技術評論社 ▪発売日:2020/4/18 【参考】:プログラミング言語大全
プログラミング言語図鑑
本書では、プログラミング言語の歴史・選定方法を丁寧に解説しています。公益財団法人日本数学検定協会認定トレーナーによる執筆で、アルゴリズムの解説も多数掲載されています。
▪著者:増井 敏克 ▪ページ数:200ページ ▪出版社:ソシム ▪発売日:2017/8/1 【参考】:プログラミング言語図鑑
更なる学習方法
プログラム言語に学習に密接なコンピュータ自体を理解することも重要です。「THE NATIONAL MUSEUM OF COMPUTING」のサイトでは、バーチャルツアーを体験することができます。日本のコンピュータ史を理解するには、IPSJ コンピュータ博物館のアクセスもおすすめです。
【参考】:THE NATIONAL MUSEUM OF COMPUTING 【参考】:IPSJ コンピュータ博物館
プログラミング言語の進化のメリットを享受しましょう
1945年以降、デジタル計算機型のコンピュータの登場に連動して、プログラミング言語は進化を続けています。特に2000年以降に登場したプログラミング言語は多様なニーズを満たし、利便性が向上しました。
ベースとなっているC言語・C++・Javaを使用することもできますし、用途に応じてPerl・Ruby・Python・C#・Scala・Kotlin・Swift・Go等を適宜選択することも可能です。これらの多様な言語のメリットを享受し、システム開発に役立てましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから