コンピュータ

コンピュータ（）は、広義には、計算やデータ処理を自動的に行う装置全般のことであり、現在ではとくに断らないかぎりエレクトロニクス技術を用いたエレクトロニック・コンピュータ（、漢字表記では電子計算機）を指している。
コンピュータという言葉は元々は計算をする人間の作業者のことを指す言葉であったが、今では計算を行う装置あるいはシステムを指す言葉として使われている。
歴史的には、機械式のアナログやデジタルの計算機、電気回路によるアナログ計算機、リレー回路によるデジタル計算機、真空管回路によるデジタル計算機、半導体回路によるデジタル計算機などがある。
かつては（1970年代や1980年代ころまでは）コンピュータといえばアナログコンピューターも含めたものであったが、1990年代や2000年ころには一般には、主に電子回路による、デジタル方式でなおかつプログラム内蔵方式のコンピュータを指す状況になっていた。演算（広義の演算）を高速・大量に行えるのでその用途は多様であり、現在、数値計算、情報処理、データ処理、制御、シミュレーション、文書作成、動画編集、ゲーム、バーチャル・リアリティ、画像・映像の認識（）、人工知能などさまざまな用途に用いられている。さらに近年では、大学の研究室や先端的な企業の研究所などでは量子回路（電子回路とは異なるもの）を用いた量子コンピュータについても研究・開発が為されてきており、すでに実用段階に近づきつつある様相を見せている。
様々な種類があり、
メインフレーム、スーパーコンピュータ、パーソナルコンピュータ（マイクロコンピュータ）などの他、さまざまな機器（コピー機、券売機、洗濯機、炊飯器、自動車など）に内蔵された組み込みシステムやそれから派生したシングルボードコンピュータもある。2010年代には板状でタッチスクリーンで操作するタブレット（- 型コンピュータ）、板状で小型で電話・カメラ・GPS機能を搭載したスマートフォンも普及した。
世界に存在するコンピュータの台数は次のようになっている。
コンピュータ同士を繋ぐネットワークは、1990年代に爆発的に普及して地球を覆うネットワークとなり、現在ではインターネットおよびそこに接続された膨大な数のコンピュータがITインフラとして様々なサービスを支えている。
表記・呼称.
日本では「コンピュータ」や「コンピューター」という表記が多く使われている。
日本の法律用語では刑法や著作権法等で「」と表現される（英語のelectronic computerに相当）。と略される。なお「電算業務」「電算処理」「電算室」などの語には、「コンピュータの」という意味合いで「電算」という表現が織り込まれている。これについて、情報処理学会が日本における計算機の歴史について調査した際に、学会誌『情報処理』に掲載された富士通における歴史を述べた記事 によれば、電子計算機以前の頃、リレーによる計算機によりサービスを開始した同社が（「電子」じゃないけど、ということで）使い始めた言葉であろう、と書かれている。
中国（中国大陸・香港）や台湾などでもよく使われる電脳（でんのう）は、日本でも趣味的な分野で多用される。2字で書くことができ冗長でないことや、電算などのように分野によっては実用する語でないことが理由だと考えられる。人工頭脳（じんこうずのう） や電子頭脳（でんしずのう）とも表現する。
「電子計算組織」という語もあり、官公庁の公式文書である入札公告、条例などで21世紀に入った後の使用例も見られる-->
概要.
1940年代に最初の実用デジタルコンピュータが登場して以来、コンピュータの形態や性能は劇的に変化してきた。しかし現在のところ、基本的にはノイマン型の構成を受け継いでいる。
ハードウェア.
記憶.
記憶装置（メモリ）はアドレスを附与された領域の列で、各の領域には命令又はデータが格納される。
領域に格納された情報は書換可能か否か、揮発性（動力の供給を止めることで情報が失くなるという性質）を有つか否かは、記憶装置の実装方法に依存する。
記憶装置を実装する技術もまた時代と伴に大きく変化してきた。初期は電磁継電器(リレー)が、続いて水銀の入った管（水銀遅延線）や金属線を波（振動）が伝わる際の遅延時間を利用する部品が使われた。次にはフェライト製のトロイダルコア（磁気コアメモリ）や個別部品のトランジスタが使われた。そして、現在使われている方式の元祖と言える、集積回路による記憶装置は1960年代に開発され、1970年代にはコストパフォーマンスで凌駕し、それまでの主流だったコアメモリに替わり主流となった（インテルのDRAM、1103による（））。
また、補助的に用いられる、一般に大容量の補助記憶装置がある。例えば、SSDやHDDなどがそれである。
演算.
演算装置は、加算・減算などの算術演算、AND・OR・NOTなどの論理演算、比較（2つの値が等しいかどうかなど）、ビットシフト等を行う装置である。
制御.
制御装置は実行に必要な情報を記憶装置から読み出し、実行結果を記憶装置の中の正しい場所に収める。
入・出力.
入出力（I/O。「アイオー」ともいう）は、「入力」（インプット input）と「出力」（アウトプット output）をひとまとまりに指すための総称である。入力のほうはコンピュータが外の世界からデータ類を得ることおよびその内容である。一方、出力のほうはコンピュータがデータ類を外に送り出すことおよびその内容である。
入出力インタフェース（I/Oインタフェース）は、コンピュータと周辺機器の間でやりとりを可能にするための仕組みであり、それが可能になるように仕様や規格が定められている。
「入出力装置」も総称であり、（1）入力を得るためのもの(入力装置）（2)出力するためのもの（出力装置）(3)入力と出力を兼ね備えたもの（入出力装置） の3つに大別することができる。
1番目の入力装置としては例えば、PCのキーボード、マウス、スマホやタブレットの内蔵カメラやマイクロフォンなどがあり、他にもスキャナ、などがある。
出力装置としては、PCのディスプレイ、スピーカー、プリンター、スマートフォンのバイブレーターなどがある。
入力装置と出力装置を兼ね備えたものとしては、Wifiモジュール、無線LANモジュール、ネットワークカードなどが挙げられ、コンピュータがネットワークとの間でデータを送受信するために使われる。またスマホやタブレットのタッチスクリーンが挙げられ、これは入力装置と出力装置を合体させたものである。 ゲーム機の振動機能付きのゲームコントローラーやPS VRのヘッドセット類も「入力と出力を兼ね備えたもの」という分類になる。 
ソフトウェア.
命令.
コンピュータの中枢部であるCPUやMPUの命令は、二進コード、つまり「0」か「1」を並べたもの、で表現される。例えば、インテル系のマイクロプロセッサで使われるあるコピー命令のコードは10110000である。（以下便宜上、CPUやMPUを「CPU類」と呼ぶが）CPU類は限られた数の明確で単純な命令しか持っていない。機械語は人間の言語に比べるとずっと貧弱であり、かなり単純なことでしかできない。ただしその命令に曖昧さは全くない。多くのCPUで使われている命令の典型的な例は、「5番地のメモリの中身をコピーしてそのコピーを10番地に書け」とか「7番地の中身を13番地の中身に加算して結果を20番地に書け」とか「999番地の中身が0なら次の命令は30番地にある」といったものである。ある特定のCPUが実行できる特定の命令セットを機械語と呼ぶ。
実際には、人間が命令を機械語で直接書くことは通常はなく、かわりに高水準のプログラミング言語を使う。プログラミング言語で書いたコンピュータプログラムをコンパイラと呼ばれる特別なコンピュータプログラムによって一旦機械語に翻訳した後に、機械語で実行する。あるいはインタプリタによって自動的に機械語に翻訳しつつ実行する。プログラミング言語の中にはアセンブリ言語（低水準言語）のように、機械語に非常に近く、機械語と1対1で対応付けられる記述体型をもつものもある。逆に Python、Java、Prologのような高水準言語でプログラムを書く場合、CPUごとに異なる機械語をまったく意識する必要や知る必要がまったく無く、もちろん膨大な量の「0」と「1」の組み合わせの記述を書くというようなわずらわしいこともしなくて済み、かわりに人間が理解しやすい英単語と同様のあるいは英単語に似たキーワードおよび算数・数学などで慣れ親しんだ記号などを組み合わせてプログラムを書くことができる。
プログラム.
コンピュータプログラムはコンピュータに実行させる命令を記述したものを意味する。ワープロソフトやOSなどの基本的なプログラムは莫大な量の命令からなる。汎用的な処理をプログラムごとに全て新たに書くのは効率が悪いため、例えば「画面に点を描く」「ファイルに保存する」「インターネットを通して他のコンピュータとデータを遣り取りする」のような定型的な処理はライブラリとしてまとめられる。
今日では、ほとんどのコンピュータは同時にいくつものプログラムを実行するように見える。これは通常、マルチタスクと呼ばれている。実際には、CPUはあるプログラムの命令を実行した後、短い時間の後でもう一つのプログラムに切り替えてその命令を実行している。この短い時間の区切りをタイムスライスと呼ぶ。これによって、複数のプログラムがCPU時間を共有して同時に実行されるように見える。これは動画が実は静止画のフレームの短い連続で作られているのと似ている。このタイムシェアリングは通常、オペレーティングシステムというプログラムで制御されている。
オペレーティングシステム.
具体的に処理すべき作業の有無によらず、コンピュータに自らの演算資源を管理し「ユーザーの指示を待つ」という動作を取らせるためにさえ、ある種のプログラムを必要とする。典型的なコンピュータでは、このプログラムはオペレーティングシステム (OS) と呼ばれている。オペレーティングシステムをはじめとする、コンピュータを動作させるのに必要となるソフトウェアを全般に「システムソフトウェア」と呼ぶ。
コンピュータを動作するためオペレーティングシステムは、ユーザー、もしくは他のプログラムからの要求に応じてプログラム（この意味では、アプリケーションソフトウェアもしくは単にアプリケーションという用語も使用される。ソフトウェアという用語も似た意味合いだが、これはプログラム一般を指すより広い概念である）をメモリー上にロードし、プログラムからの要求に応じていつ、どのリソース（メモリやI/O）をそのプログラムに割り当てるかを決定する。
オペレーティングシステムはハードウェアを抽象化した層を提供し、他のプログラムがハードウェアにアクセスできるようにする。例えばデバイスドライバと呼ばれるコードがその例である。これによってプログラマは、コンピュータに接続された全ての電子装置について、その奥深い詳細を知る必要なくそれらの機械を使うプログラムを書くことができる。また、ライブラリと呼ばれる再利用可能な多くのプログラム群を備え、プログラマは自ら全てのプログラムを書くことなく、自らのプログラムに様々な機能を組み込むことができる。
ハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化されたユーザインタフェースを兼ね備えている。かつてはキャラクタユーザインタフェース（CUI）のみが提供されていたが、1970年代にアラン・ケイらが Dynabook構想を提唱し、「暫定 」と呼ばれる Altoと Smalltalkによるグラフィカルユーザインタフェース環境を実現した。なお、「暫定 」は当時のゼロックスの首脳陣の判断により製品化されなかった（ゼロックスより発売されたグラフィカルユーザインタフェース搭載のシステム Xerox Starは「暫定 」とは別系統のプロジェクトに由来する）が、この影響を受け開発されたApple Computer（現:Apple）の LISAや Macintosh、マイクロソフトの Windowsの発売、普及により、グラフィカルユーザインタフェース（GUI）が一般的にも普及することとなった。一方、UNIX系OSでも1980年代からX Window Systemが開発されグラフィカルユーザインタフェースが実現した。CUIとGUIはそれぞれ長所と短所があり、GUIは初心者に優しいので初心者向けにはもっぱらGUIを使う操作法が教えられ、上級者あたりになるとGUIとCUIを併用することになり、コンピュータ技術者やシステム運用エンジニアなどはしばしば主にCUIを使いGUIは補助的に使う。現在CUIを使う人はGUIとCUIを同時並行的に使用しGUIのマルチウィンドウのいくつかをCUI状態で使うといったことも一般的である。またLinuxなどではGUIモードとCUIモードを根本的に切り替えるということも可能である。
世間に普及するコンピュータを台数を基準として見た場合、最も多いのは組み込みシステムであり、すなわちエアコンや炊飯器などの家電製品、乗用車、各種の測定機器、工作機械などに組み込まれた非常に小さく安価なコンピュータであり、組み込みシステムでは組み込みOSと呼ばれるOSを用いる。2019年時点でのシェアを見ると、東京大学の坂村健が開発し無料配布可能で機器開発者が改変することも許されているTRON系OSのシェアが世界第1位のおよそ60%であり、24年連続トップ。TRON系のなかでもITRONが最も普及している。TRON以外はPOSIX系つまりUNIX系、Linux類である。たとえば米リナックスワークスのLynxOS、米ウィンドリバーのVxWorks、米シンビアンのSymbian OSなど。なお小規模な組み込みシステムのなかには、明確なOSを内蔵していないものもある。
次に台数が多いのがスマートフォンであり、スマートフォンのOSおよびそのシェアは、2021年9月時点でAndroidが約72%、iOSが 約27%である。なおAndroidも広い意味でのLinuxの一種であり、より具体的に言うとLinuxのカーネルを一部改編し他のオープンソース・ソフトウェアを組み合わせたものである。つまりおよそ7割の人々が実は意識せずにLinuxの一種を毎日使っているわけである。
ノートPCやデスクトップPCのOSおよびそのシェアとしては、2021年時点でWindows 75.4%、MacOS 15.93%、ChromeOS 2.59%、Linux 2.33%となっている。なお、このMacOSはFreeBSDを基にしたOSでありUnix系である。
スーパーコンピュータのOSは、2021年現在、ほぼ100%、Linuxである。スーパーコンピュータ用は2000年ころはUNIXが9割ほどを占めていたが、その後の10年間つまり2010年ころまでにそのほぼ全てがLinuxに置き換わるということが起きた。
デジタルとアナログ.
デジタル計算機とアナログ計算機の分類もあるが、単にコンピュータを指す場合は前者を用いる事が多い。現代では後者がマイナーな存在となったためである。
コンピュータという語を特に「電子」計算機を指す語として使う場合もあり、その用語法では、アナログ計算機のうち特に電子式アナログ計算機を指すのが「アナログコンピュータ」ということになる。
また、対象が連続量ではなく、整数のような離散的であるものは（例えばエレクトロニクスを使っていなくても）「デジタル」である。例えば、そろばんはデジタルである。
アナログ計算機は、電気的現象・機械的現象・水圧現象を利用してある種の物理現象を表現し、問題を解くのに使われる計算機の形態。アナログ計算機はある種の物理量を別の物理量で表し、それに数学的な関数を作用させる。入力の変化に対してほぼリアルタイムで出力が得られる特徴があり（これはいわゆる「高速型」の場合の話である。時間をかけてバランスが取れた状態を見つけ出すとか、移動量の合計を得るといったような「低速型のアナログ計算機」もある）、各種シミュレーションなどに利用されたが、演算内容を変更するには回路を変更する必要があり、得られる精度にも限界があるので、デジタルコンピュータの性能の向上とDA/ADコンバータの高精度化・高速化によって役目を終えた。
なお、かつて電子式アナログコンピュータの重要な要素として多用されたものと同じ機能を持つ電子回路は、IC化された「オペアンプIC」として今日でも広く使われているが、モジュール化され簡単に使えるものになっているため、一般にコンピュータとは見なされてない。
アナログ計算機が「量」（物理量）によって計算するのに対して、デジタルコンピュータは、数（digit）によって「計数的」に計算する。現代ではもっぱらエレクトロニクスを用いて、2値論理による論理演算と、二進法による数値表現を使っている（タイガー計算器のように歯車の離散的な角度により十進法を表現するものもデジタルな計算機であるし、機械として見ると2値論理方式の機械でも、数の扱いとしては3増し符号などにより十進法のものもある。数値の表現法である「x進法」と、論理のモデルである「x値論理」は、厳密には別のものであることに注意されたい）。