この記事は英語版の対応するページ
を翻訳することにより充実させることができます。(2024年5月)翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。コンピュータプログラム(英語: computer program)は、コンピュータに対する命令(処理)を記述したものである[1]。programの原義は、前もって(pr-)書く(gram)であり、いわゆるプログラミング言語の世代に応じて意味合いは変わっている。プログラム内蔵方式のコンピュータのCPUには、CPUで実行するプログラムの命令が必要である[2]。「ソフトウェア」および「アプリケーションソフトウェア」も参照 計算機械ないしは情報処理機械について、ハードウェアとプログラム(ソフトウェア)というような分担が明確になったのは、実際的には1950年頃から後、いわゆるノイマン型(ないしはプログラム内蔵方式)のコンピュータの実現によってである。理論的にはチューリングマシン等が関係するが、そのような理論的な側からの観点はここでは省略する。また歴史的に見ると、19世紀にバベッジとラブレスが解析機関用にコンピュータプログラムをつくったと言えるが、それも略す。直感的なたとえでは、ハードウェアをそろばんとすると、それを「どう操作するか」という、はっきりした具体的な手順がプログラムに相当する。 1940年代から見られる計算機のいくつかは、行いたい計算(データ処理)[注 1]の種類に応じた手順について、各構成要素間の電気的配線を直接に接続することでプログラムされていた。これをワイヤードロジック(布線論理)によるプログラミングという。この方法では、パッチパネル部分をモジュール化してまるごと交換するなどといったような手法もないでもないが、異なった計算をさせたい場合ごとに、配線を変更するという手間が必要である。特に、ENIACが(運用開始時には[注 2])この方式だったということは歴史上よく言及される。 ワイヤードロジックは、制御の論理が、電気的な配線によって直接進行するという点で速度の点では優れているため、論理を変更する必要がないASICや、プロセッサ自身の内部では速度の点などでは有利な手法であり、現代のマイクロプロセッサ、特にいわゆるRISCでは多用されている[注 3]。
概要