リンクこの記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。computer)とは、計算(コンピューティング)を行う機械を指す。自動計算機や、計算開始後は人手を介さずに計算終了まで動作するような電子式汎用計算機を指す。情報処理・データ処理などと呼ばれるような幅広い行為に用いられる。現代ではプログラム内蔵方式のディジタルコンピュータの中でも、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多い。アナログ計算機については各項を参照。日本語においては、英語の「Computer」を音写した「コンピュータ」や「コンピューター」が多く使われる[1]。法用語では「電子計算機(でんしけいさんき)」という表現が刑法や著作権法等で用いられている。いう語もあり、官公庁の公式文書である入札公告、条例などで21世紀に入った後の使用例も見られる[2][3]。「組織」の用法は大体「システム」といった意味のようである。語で、「コンピュータの」という意味合いで電算という語が用いられる。掲載された富士通における歴史を述べた記事[4]によれば、電子計算機以前の頃、リレーによる計算機によりサービスを開始した同社が(「電子」じゃないけど、ということで)使い始めた言葉であろう、と書かれている。使われる電脳といった言葉がある。「Computer(コンピューター)」は算術演算(数値計算)を行う主体を指す語であるが、元々は主体として人を指していた。この用法は(英語圏では非常に稀になりつつあるが)今でも有効である。オックスフォード英語辞典第2版では、この語が主体として機械をも指すようになった最初の年を1897年と記している。同辞典では、1946年までに、異なる方式の計算機を区別するための、「Computer」に付く修飾語句がいくつか導入されている。デジタル)」「Electronic(エレクトロニック)」といった語が含まれている。様々な引用文から、1946年以前にこれらの語が既に使われていたことは明らかである。ディジタルとアナログ(ディジタル)コンピュータは数値計算以外にもあらゆる情報処理を行えるものであるのに対し、アナログ計算機はそうではないので、以下、「コンピュータ」という表現と「計算機」という表現が混用されるが、意図的なものである。ディジタル計算機とアナログ計算機という分類もあるが、アナログ計算機は現代ではほとんどマイナーな存在となったことから、単にコンピュータという表現でディジタルコンピュータを指すことが多い。「コンピュータ」という語を特に「電子」計算機を指す語として使う場合があり、その用語法では、アナログ計算機のうち特に電子式アナログ計算機を指すのが「アナログコンピュータ」ということになる。対象が連続量ではなく、整数のような離散的であるものは(例えばエレクトロニクスを使っていなくても)「ディジタル」である。良い例としては、そろばんはディジタルであり、そろばんのことを指してアナログと言うのは誤りである。利用してある種の物理現象を表現し、問題を解くのに使われる計算機の一形態である[6]。アナログ計算機はある種の物理量を別の物理量で表し、それに数学的な関数を作用させる。入力の変化に対してほぼリアルタイムで出力が得られる特徴があり(これはいわゆる「高速型」の場合の話である。時間をかけてバランスが取れた状態を見つけ出すとか、移動量の合計を得るといったような「低速型のアナログ計算機」もある)、各種シミュレーションなどに利用されたが、演算内容を変更するためには回路を変更する必要があり、得られる精度にも限界があるので、ディジタルコンピュータの性能の向上とDA/ADコンバータの高精度化・高速化によって、コストパフォーマンス的にもそちらで代替したほうが有利となり、その役割を終えた。電子式アナログコンピュータの重要な要素として多用されたものと同じ機能を持つ電子回路は、IC化された「オペアンプIC」として今日でも広く使われているが、モジュール化され簡単に使えるものになっているため、全くコンピュータとは認識されていない。以上のようにアナログ計算機が「量」(物理量)によって計算を行うのに対して、ディジタルコンピュータは、数(digit)によって「計数的」に計算を行う。現代ではもっぱらエレクトロニクスを用いて、2値論理による論理演算と、二進法による数値表現を使っている(タイガー計算器のように歯車の離散的な角度により十進法を表現するものもディジタルな計算機であるし、機械として見ると2値論理方式の機械でも、数の扱いとしては3増し符号などにより十進法のものもある。数値の表現法である「x進法」と、論理のモデルである「x値論理」は、厳密には別のものであることに注意)。概要アナログ計算機の仕組みについては「アナログ計算機」を参照1940年代に最初の実用ディジタルコンピュータが登場して以来、コンピュータに使われる技術は、特に微細化という点では劇的に変化してきた。現在のところ、基本的にはノイマン型の構成を受け継いでいる。(コンピュータ)」および「機械語」を参照コンピュータの命令は人間の言語に比べるとずっと貧弱である。コンピュータは限られた数の明確で単純な命令しか持っていないが、曖昧さは全くない。多くのコンピュータで使われている命令の典型的な例としては、「5番地のメモリの中身をコピーしてそのコピーを10番地に書け」とか「7番地の中身を13番地の中身に加算して結果を20番地に書け」とか「999番地の中身が0なら次の命令は30番地にある」といったものである。コンピュータの内部では命令は二進コード、つまり2を底とする計数法で表現される。インテル系のマイクロプロセッサで使われるあるコピー命令のコードは10110000である。ある特定のコンピュータがサポートする特定の命令セットをそのコンピュータの機械語と呼ぶ。実際には、人間がコンピュータへの命令を機械語で直接書くことは通常はなく、高水準のプログラミング言語を使う。プログラミング言語で書かれた命令が、インタプリタやコンパイラと呼ばれる特別なコンピュータプログラムによって自動的に機械語に翻訳されて実行される。プログラミング言語の中にはアセンブリ言語(低水準言語)のように、機械語に非常に近いレベルで対応付けられるものもある。Prolog(プロログ)のような高水準言語は計算機の実際の演算の詳細とは完全に切り分けるという絶対原理に基づいている。主記憶装置(メモリ)は番地を付けられたセルの列で、各々のセルには小さな量の情報が格納される。この情報はある場合にはコンピュータに何をすべきかを教える命令である。セルにはコンピュータが命令を実行する対象となるデータも格納される。全てのセルはこのどちらかを格納し、ある時はデータを、またある時は命令を格納する。一般的には、メモリセルの中身はいつでも書き換えられる。石板というよりは落書き帳に近い。各セルのサイズとセルの数はコンピュータごとに大きく異なる。メモリを実装する技術も時代とともに大きく変化してきた。最初は電磁リレーが、続いて水銀の入った管(水銀遅延線)や金属線を波(振動)が伝わる際の遅延時間を利用するデバイスが使われた。次にはフェライト製のトロイダルコア(磁気コアメモリ)や個別部品のトランジスタが使われた。補助的な、一般に大容量の補助記憶装置がある。演算装置は、加算・減算などの算術演算、AND・OR・NOTなどの論理演算、比較(2つの値が等しいかどうかなど)、ビットシフト等を行う装置である。制御装置は、記憶装置の中に在る、これから実行する命令が在る場所を視続け、実行する時に、実行に必要な情報を記憶装置から読み出し、実行した結果を記憶装置の中の正しい場所に収めるという仕事をする。一度これらの仕事を終えると、制御装置は次の命令が在る場所に目を移す(普通、次の命令は次の格納場所に在るが、ジャンプ命令が実行された場合はそうではない)。入出力(I/Oとも言う)はコンピュータが外の世界から情報を得たり、計算結果を外に送り返したりすることを可能にするためのものである。外部から見て、コンピュータに情報を送ることを入力、逆にコンピュータから情報を得ることを出力という。入出力には、入出力インタフェースを介して、入出力装置(I/O装置)が接続される。入出力装置としては例えば、キーボード、マウス、スキャナ、モニタやプリンター、磁気ディスク装置、光学ドライブ装置、ネットワークインタフェースなどといった馴染み深いものから、3次元ディスプレイやデータグローブといったものまで、幅広いものが存在する。入出力装置は、主として入力を得るためのもの(キーボード、スキャナなど)、出力するためのもの(モニタ、プリンターなど)、入力と出力を兼ね備えたもの(磁気ディスク装置、インタフェースなど)に大別することができる。(コンピュータ)」を参照コンピュータプログラムはコンピュータに実行させる命令の列びを意味する。ワープロソフトやOSなどの基本的なプログラムは莫大な量の命令からなる。汎用的な処理を、プログラムごとに全て新たに書くのは効率が悪いため、例えば「画面に点を描く」「ファイルに保存する」「インターネットを通して他のコンピュータとデータ遣り取りする」の様な屡行われる仕事は、ライブラリとして纏められる。今日では、ほとんどのコンピュータは同時にいくつものプログラムを実行するように見える。これは通常、マルチタスクと呼ばれている。実際には、CPUはあるプログラムの命令を実行した後、短い時間の後でもう一つのプログラムに切り替えてその命令を実行している。この短い時間の区切りをタイムスライスと呼ぶ。これによって、複数のプログラムがCPU時間を共有して同時に実行されるように見える。これは動画が実は静止画のフレームの短い連続で作られているのと似ている。このタイムシェアリングは通常、オペレーティングシステムというプログラムで制御されている。具体的に処理すべき作業の有無によらず、コンピュータに自らの演算資源を管理し「ユーザーの指示を待つ」という動作を取らせるためにさえ、ある種のプログラムを必要とする。オペレーティングシステムをはじめとする、コンピュータを動作させるのに必要となるソフトウェアを全般に「システムソフトウェア」と呼ぶ。コンピュータを動作するためオペレーティングシステムは、ユーザー、もしくは他のプログラムからの要求に応じてプログラム(この意味では、アプリケーションソフトウェアもしくは単にアプリケーションという用語も使用される。ソフトウェアという用語も似た意味合いだが、これはプログラム一般を指すより広い概念である)をメモリー上にロードし、プログラムからの要求に応じていつ、どのリソース(メモリやI/O)をそのプログラムに割り当てるかを決定する。オペレーティングシステムはハードウェアを抽象化した層を提供し、他のプログラムがハードウェアにアクセスできるようにする。デバイスドライバと呼ばれるコードがその例である。これによってプログラマは、コンピュータに接続された全ての電子装置について、その奥深い詳細を知る必要なくそれらの機械を使うプログラムを書くことができる。ライブラリと呼ばれる再利用可能な多くのプログラム群を備え、プログラマは自ら全てのプログラムを書くことなく、自らのプログラムに様々な機能を組み込むことができる。ハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化されたユーザインタフェースを兼ね備えている。Smalltalk(スモールトーク)によるグラフィカルユーザインタフェース環境を実現した。Windows(ウィンドウズ)の発売、普及により、グラフィカルユーザインタフェースが一般的にも普及することとなった。世間に普及するコンピュータを台数を基準として見た場合、そのほとんどはデスクトップコンピュータとして存在しておらず、携帯電話や炊飯器などの電気製品、各種の測定機器、乗用車や工作機械などの装置に組み込まれた、非常に小さく安価なコンピュータとして実装されている。これらを組み込みシステムと呼ぶ。一般に組み込みOSと呼ばれる専用のOSを用いる。OS(シンビアン・オーエス)、米リナックスワークスのLynxOS(リンクスオーエス)などが利用されている。Linux(リナックス)といったデスクトップコンピュータで使われているOSと同系統のOSを搭載する場合もある。小規模な組み込みシステムのなかには、明確なOSを内蔵していないものも多い。古代バビロニアで手動式ディジタル計算器であるアバカスが(“そろばん”は中国起源説もある)発明される(古代ギリシアでは紀元前300年頃に伝わって来たとされており、日本では西暦1400年頃の室町時代に明から伝わって来たといわれる)。紀元前150~100年に古代ギリシア人によって作られた、現在確認できるものでは世界最古の「一種の、アナログ計算機ではないか」と考えられているもの、である。イギリスのエドモンド・ガンターが、手動式アナログ計算器である計算尺の原型となる対数尺を発明。1623年頃、ドイツのヴィルヘルム・シッカートが、ネイピアの骨を応用した、乗算と加減算を行なえる、歯車式の計算機を作った。加減算に関しては繰り上がりが出来たが、乗算に関しては繰り上がりが出来なかった。フランスのブレーズ・パスカルが歯車式計算機パスカリーヌを開発。約50台が作成された。その後パスカリーヌより高機能な計算機を開発し、60年間に約1500台が販売された。ライプニッツが二進法の数理を確立。このころ織機の制御にパンチカードが使われ始める。ジョゼフ・マリー・ジャカールがジャカード織機を発明。解析機関の設計者チャールズ・バベッジが第1階差機関の実験モデルを作成。バベッジによる階差機関の開発開始。追加予算が打ち切られ、階差機関の開発が中止となる。シュウツ親子により階差機関が完成。ジョージ・ブールがブール代数を発見する。おける初の標準化機関であり、国際機関。バベッジが解析機関の実現を見ぬまま死去。解析機関のオペレータであるエイダ・ラブレスは世界最初のプログラマとされる。ハーマン・ホレリスがパンチカード方式の自動集計機を実現。ジョン・フレミングが二極真空管を発明。扱う国際的な標準化団体。リー・ド・フォレストが三極真空管を発明。同論文でチューリングマシンを提示。ドイツのコンラート・ツーゼが、自宅で機械式の計算機V1(後にZ1と改名)を作成。ツーゼがZ1をベースに演算部がリレー、記憶部が機械式のテスト用の計算機Z2を作成。ツーゼがZ2をベースに全リレー式の計算機Z3を作成。ジョン・アタナソフとクリフォード・ベリーが真空管を使って演算処理をするディジタル計算機ABCを作成。ローレンツSZ42暗号機によるドイツ軍の暗号を解読するため、イギリスでColossusが発明される。メモリ部分は機械式に戻る。ジョン・フォン・ノイマンがプログラム内蔵方式を提唱。ペンシルベニア大学で真空管を使って演算処理をするディジタル計算機ENIACが作成される。一般に広く知られた初のコンピュータ。AT&Tベル研究所のウォルター・ブラッテン、ジョン・バーディーン、ウィリアム・ショックレーらがトランジスタを発明。モーリス・ウィルクスとケンブリッジ大学の数学研究所のチームによるEDSAC稼働。