簡単にいうと…
プログラムとは
コンピュータが実行する処理
という工夫のことです。
英語名称「program」は、pro-(先だって)+gram(書かれたもの)という意味です。
詳しくいうと…
プログラムに満ちた風景
コンピュータといえば、パソコンやスマホを思い浮かべますね。
とはいえ、CPU(中央演算処理ユニット)を備えた電子機器なら(そしてほとんどの電子機器はCPUを備えているのですが)、みな等しくコンピュータです。
家電も、ロボットも、テレビもデジカメも、この意味でみんなコンピュータと呼ぶことができます。
コンピュータには、これまた等しく、何らかのプログラムが実装されています。
プログラムとは、ひとことで言えば
「このボタンを押せば、こんな効果が現れる」
ということです。
「パソコンの電源ボタンを押す」と自動で「OSが起動し」たり、「スマホのブラウザアイコンを押す」と「Webブラウザ画面が立ち上がった」り、「電子レンジのボタンを押す」と「ターンテーブルが回って真空管から電磁波が発された」りするのも、すべてプログラムによる処理のおかげです。
さて、プログラムには以下の大まかな種類があります。
・ファームウェア
・オペレーティングシステム(OS)
・ミドルウェア
・アプリケーションソフトウェア
・Webサービス
1つひとつ見てゆきましょう。
ファームウェア
ファームウェアは、ハードウェア(機器)制御用に事前インストールされている、最もハードウェア寄りなプログラムです。
BIOSや組み込みシステムなどの下位種類があります。
オペレーティングシステム(OS)
オペレーティングシステムは、先述のファームウェア上で、コンピュータの運用管理を司るタイプのプログラムです。
WindowsやiOSなどの製品があります。
ミドルウェア
ミドルウェアは、先述のOS上で、汎用的な機能を提供するタイプのプログラムです。
サーバサービスやデバイスドライバ、仮想マシンなどの下位種類があります。
アプリケーションソフトウェア
アプリケーションソフトウェアは、先述のOS・ミドルウェア上で、特定の機能を提供するタイプのプログラムです。
文書ソフトや計算ソフト、Webブラウザなどたくさんの下位種類があります。
Webサービス
Webサービスは、先述のOS・ミドルウェア・アプリケーションソフトウェア上で、Webアプリサーバがクライアント端末に対して提供するタイプのプログラムです。
検索エンジンやSNS、電子商取引サイトなど、たくさんの下位種類があります。
以上のようにプログラムは、ほとんどすべての電子機器の内側で、どのように振舞いどんな機能を提供するかを決めています。それによって日々わたしたちの電子機器ライフを支えているのでした。
さらに知りたいなら…
つまり…
プログラムとは
コンピュータが実行する処理
という工夫のことなわけです。
プログラムを組むには、IDE(統合開発環境)と呼ばれる開発ソフトを用意すれば基本的にはよいぞぃ。
あとは、覚えたプログラミング言語のルールにしたがって、とにかく根気強く記述してゆけば、あなたもプログラミングができ、〇〇〇.exeなどのアプリケーションソフトウェアを作ることができるぞぃ。
歴史のツボっぽくいうと…
- 1950年代メインフレームのOS機能初期コンピュータであるメインフレームが開発されるが、そこではプログラムやデータの格納されたパンチカードや磁気テープを直接マシンが読み取り実行していたため、タスクの優先づけやデバッグなどOSの基本機能は当時、機械的制御(スイッチやランプ)や人力によって行なわれていた。
- 1959年DBの概念提唱W.C.MaGeeが論文「Generalization: Key to successful electronic data processing」を発表、データ重複の回避とシステム拡張の効率化のために源泉ファイル(source file)という概念を提唱する
- 1961年仮想記憶技術の搭載アメリカ・バロース社が、仮想記憶(スワッピング)技術を搭載したメインフレーム「バロース B5000」を開発する
- 1963年GUIの登場アメリカ空軍の防空管制システム「SAGE」において、GUIが初めて実用化される
- 1964年商用OSの登場アメリカ・IBM社が商用OS「OS/360」および「DOS/360」を発表する
その後「OS/360」はNASAのアポロ計画でも使用される - 1964年DBMSの登場アメリカ・General Electric社のC.W.Bachmanらが、最初のDBMS「IDS(Integrated Data Store)」を開発する
- 1965年初期の組み込みシステムアメリカ・マサチューセッツ工科大学のチャールズ・スターク・ドラッパーらが、アポロ誘導コンピュータを開発する
- 1968年ハイパーテキストの登場アメリカの思想家テッド・ネルソンと発明家ダグラス・エンゲルハートらが、それぞれハイパーテキストを実装したシステムを開発する
- 1970年リレーショナルDBの概念提唱イングランド生まれの計算機科学者E・F・Coddが、論文「大規模共有データバンクのデータ関係モデル」を発表、リレーショナルデータベースの一般理論を提唱する
以降、DBといえばこのリレーショナル型を指すようになる - 1975年BIOSの用語登場アメリカのコンピュータ工学者ゲイリー・キルドールが、自身の開発したOS(CP/M)の起動時ハードウェアアクセス用プログラムコードに「BIOS」と名付ける
以降、この名称がハードウェアアクセスのプログラム名として定着する - 1979年リレーショナルDBの登場アメリカ・Relational Software社(現 Oracle社)が、最初のリレーショナルDBMS「Oracle V2」を販売する
- 1984年GUI標準搭載の商用パソコンアメリカ・Apple社が、GUI標準搭載のパソコン「Macintosh」(Mac OS)を販売する
- 1989年HTMLの登場イギリスの計算機科学者ティム・バーナーズ=リーが、HTMLやHTTPなどを提案しコード化する
- 1991年最初のWebサーバイギリスの計算機科学者ティム・バーナーズ=リーが、最初のWebサーバ&ブラウザ「WorldWideWeb」を公開する
- 1994年32bitカーネルのOSアメリカ・Microsoft社が、32bitに本格対応し堅牢なマルチタスク機能備えたOS「Windows NT」を販売する
2002年には、64bit対応のWindows Server 2003を公開する - 1999年Java用アプリサーバの規格Javaで実装されたアプリケーションサーバの標準規格&APIを定めたJava EE(Java Platform, Enterprise Edition)が公開される
- 2000年EFI仕様のリリースアメリカ・インテル社が、高性能・大容量マシンに適用するため、従来のBIOSのプログラム仕様を変更し、EFI仕様としてリリースする
- 2011年UEFI仕様の普及EFIから名称を変えたUEFI仕様が、2TB以上の容量を持つハードディスクに対応するため、本格的に採用されはじめる
<参考文献>(2019/10/08 visited)