| この記事は 英語版の対応するページを翻訳することにより充実させることができます。(2024年5月)翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
- 英語版記事を日本語へ機械翻訳したバージョン(Google翻訳)。
- 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にしなければなりません。これが成されていない場合、記事は削除の方針G-3に基づき、削除される可能性があります。
- 信頼性が低いまたは低品質な文章を翻訳しないでください。もし可能ならば、文章を他言語版記事に示された文献で正しいかどうかを確認してください。
- 履歴継承を行うため、要約欄に翻訳元となった記事のページ名・版について記述する必要があります。記述方法については、Wikipedia:翻訳のガイドライン#要約欄への記入を参照ください。
- 翻訳後、
{{翻訳告知|en|Computer program|…}} をノートに追加することもできます。
- Wikipedia:翻訳のガイドラインに、より詳細な翻訳の手順・指針についての説明があります。
|
JavaScriptで書かれたコンピュータプログラムのソースコード
コンピュータプログラム(英語: computer program)は、コンピュータに対する命令(処理)を記述したものである[1]。programの原義は、前もって(pr-)書く(gram)であり、いわゆるプログラミング言語の世代に応じて意味合いは変わっている。プログラム内蔵方式のコンピュータのCPUには、CPUで実行するプログラムの命令が必要である[2]。
概要
計算機械ないしは情報処理機械について、ハードウェアとプログラム(ソフトウェア)というような分担が明確になったのは、実際的には1950年頃から後、いわゆるノイマン型(ないしはプログラム内蔵方式)のコンピュータの実現によってである。理論的にはチューリングマシン等が関係するが、そのような理論的な側からの観点はここでは省略する。また歴史的に見ると、19世紀にバベッジとラブレスが解析機関用にコンピュータプログラムをつくったと言えるが、それも略す。直感的なたとえでは、ハードウェアをそろばんとすると、それを「どう操作するか」という、はっきりした具体的な手順がプログラムに相当する。
1940年代から見られる計算機のいくつかは、行いたい計算(データ処理)[注 1]の種類に応じた手順について、各構成要素間の電気的配線を直接に接続することでプログラムされていた。これをワイヤードロジック(布線論理)によるプログラミングという。この方法では、パッチパネル部分をモジュール化してまるごと交換するなどといったような手法もないでもないが、異なった計算をさせたい場合ごとに、配線を変更するという手間が必要である。特に、ENIACが(運用開始時には[注 2])この方式だったということは歴史上よく言及される。
ワイヤードロジックは、制御の論理が、電気的な配線によって直接進行するという点で速度の点では優れているため、論理を変更する必要がないASICや、プロセッサ自身の内部では速度の点などでは有利な手法であり、現代のマイクロプロセッサ、特にいわゆるRISCでは多用されている[注 3]。
1949年に稼働したEDSACによって初めて「実用的に」[注 4]実現されたプログラム内蔵方式(※: 「ノイマン型」の記事も参照のこと)では、プログラムは主記憶装置に記憶される(「内蔵」される)。プログラム内蔵方式のコンピュータでは、プロセッサ(特にCPU)の動作は、主記憶装置から読み込まれるプログラムによって制御される。
プログラムを作ることをプログラミングと言い、プログラミングをする人をプログラマという。プログラミングには一般に、プログラミング言語と呼ばれている形式言語である人工言語がもっぱら使われる。プログラミング言語が対応できないような特殊機能などを使う場合などにはアセンブリ言語により機械語を使ったり、直接、プロセッサを制御する機械語バイナリコードを作成することもある。プログラミング言語で書かれたプログラム(コード)をソースコードと呼ぶ。
なお、かつては「算譜(略: 譜)」という和製漢語が用いられていた(他に、データは「算料」、テストデータは「試料」、プログラミングを「作譜」は、テストプログラムを「試譜」と呼ぶ等)が、今日ではほぼ廃れている。また、「次第書き」「次第立て」という開いた表現[注 5]も作られた。
プログラミング言語を変換する、あるいは解釈実行する、といった処理をするプログラムを、プログラミング言語処理系という。処理系の類型としてコンパイラやインタプリタなどがある。コンパイラとインタプリタの関連は、二村射影により定式化されている。
プログラムは、実現する機能によって、コンピュータ自体の動作を制御するオペレーティングシステムなどのシステムプログラムと、表計算ソフトなど使用者が目的とする作業そのものを行うアプリケーションプログラムに大別される。
プログラムのうち、単体で動作せず他のプログラムから呼び出されて特定機能を提供するものをソフトウェアライブラリという。もしあるプログラムに他の多くのプログラムでも共通に使える一般的処理があれば、それらをライブラリとすることでプログラムの共通化を図ることが出来る。
脚注
注釈
出典