プログラム (コンピュータ)
ソースコードのことを、「プログラムの設計図」と「わかりやすく」呼ぶ一部マスコミなどがあるが、例えば3Dプリンタ等が設計図をそのまま解釈して物を造ってくれることは無いように、設計図とは本質的に違うものである。
なお、かつては「算譜(略: 譜)」という和製漢語が用いられていた(他に、データは「算料」、テストデータは「試料」、プログラミングを「作譜」は、テストプログラムを「試譜」と呼ぶ等)が、今日ではほぼ廃れている。また、「次第書き」「次第立て」という開いた表現も作られた。
プログラミング言語を変換する、あるいは解釈実行する、といった処理をするプログラムを、プログラミング言語処理系という。処理系の類型としてコンパイラやインタプリタなどがある。コンパイラとインタプリタの関連は、二村射影により定式化されている。
プログラムは、実現する機能によって、コンピュータ自体の動作を制御するオペレーティングシステムなどのシステムプログラムと、表計算ソフトなど使用者が目的とする作業そのものを行うアプリケーションプログラムに大別される。
プログラムのうち、単体で動作せず他のプログラムから呼び出されて特定機能を提供するものをソフトウェアライブラリという。もしあるプログラムに他の多くのプログラムでも共通に使える一般的処理があれば、それらをライブラリとすることでプログラムの共通化を図ることが出来る。
計算機械ないしは情報処理機械について、ハードウェアとプログラム(ソフトウェア)というような分担が明確になったのは、実際的には1950年頃から後、いわゆるノイマン型(ないしはプログラム内蔵方式)のコンピュータの実現によってである。理論的にはチューリングマシン等が関係するが、そのような理論的な側からの観点はここでは省略する。また歴史的に見ると、19世紀にバベッジとラブレスが解析機関用にコンピュータプログラムをつくったと言えるが、それも略す。直感的なたとえでは、ハードウェアをそろばんとすると、それを「どう操作するか」という、はっきりした具体的な手順がプログラムに相当する。
1940年代から見られる計算機のいくつかは、行いたい計算(データ処理)の種類に応じた手順について、各構成要素間の電気的配線を直接に接続することでプログラムされていた。これをワイヤードロジック(布線論理)によるプログラミングという。この方法では、パッチパネル部分をモジュール化してまるごと交換するなどといったような手法もないでもないが、異なった計算をさせたい場合ごとに、配線を変更するという手間が必要である。特に、ENIACが(運用開始時には)この方式だったということは歴史上よく言及される。