コンピュータ「電子頭脳」はこの項目へ転送されています。AIについては「人工知能」をご覧ください。コンピュータさまざまなコンピュータ。(5)コモドールのパソコンAmiga500(1987年)。エレクトロニック・コンピュータ。漢字の略語は「電算機」)を指し、電子回路による、デジタル方式でなおかつプログラム内蔵方式のコンピュータを指す。ゲームなどさまざまな用途に用いられている。コンピュータと言うとアナログコンピューターも含めて指していた[1](1970年代や1980年代ころまで)。型コンピュータ)、スマートフォンなどもコンピュータの一種である。)の内部に、組み込みシステムというコンピュータが内蔵されており、機器の制御を行っている。世界に存在するコンピュータの台数は次のようになっている。組み込みシステムに分類されるコンピュータは、2018年時点でおよそ100億台あると推計されている[2]。スマートフォンと分類されているコンピュータは2018年時点で33億6千万台が稼働状態と推計されている[3]。サーバ、デスクトップPC、ノートPCと分類されるコンピュータは、2019年時点で20億台を超えていると推計されている[4]。コンピュータ同士を繋ぐネットワークは、1990年代に爆発的に普及して地球を覆うネットワークとなり、現在ではインターネットおよびそこに接続された膨大な数のコンピュータがITインフラとして様々なサービスを支えている。computer」に相当する)。語で、「コンピュータの」という意味合いで電算という語が用いられる。よれば、電子計算機以前の頃、リレーによる計算機によりサービスを開始した同社が(「電子」じゃないけど、ということで)使い始めた言葉であろう、と書かれている。中国(中国大陸・香港)や台湾などでもよく使われる電脳(日本語発音:でんのう)は、漢字2文字だけで表記できて便利なので、日本でも趣味的な分野では多用される。電子頭脳(でんしずのう)という表現もある。初期には手動の機械式計算機などと違う点を強調して「自動」の語が入ることもあったが、近年はほぼ見なくなった(ENIACなどの「A」=Autoである)。「computer」は算術演算を行う主体を指す語であるが、元々は主体として人間を指していた。この用法は今でも有効である。オックスフォード英語辞典第2版では、この語が主体として機械をも指すようになった最初の年を1286年と記している。同辞典では、1946年までに、「computer」の前に修飾語を付けることで異なる方式の計算機を区別するようになったとする。computer」といった表現である。computer」とも表記される。概要アナログ計算機の仕組みについては「アナログ計算機」を参照1940年代に最初の実用デジタルコンピュータが登場して以来、コンピュータの形態や性能は劇的に変化してきた。現在のところ、基本的にはノイマン型の構成を受け継いでいる。記憶装置(メモリ)はアドレスを附与された領域の列で、各の領域には命令又はデータが格納される。領域に格納された情報は書換可能か否か、揮発性(動力の供給を止めることで情報が失くなるという性質)を有つか否かは、記憶装置の実装方法に依存する。記憶装置を実装する技術もまた時代と伴に大きく変化してきた。初期は電磁継電器(リレー)が、続いて水銀の入った管(水銀遅延線)や金属線を波(振動)が伝わる際の遅延時間を利用する部品が使われた。次にはフェライト製のトロイダルコア(磁気コアメモリ)や個別部品のトランジスタが使われた。補助的に用いられる、一般に大容量の補助記憶装置がある。SSDやHDDなどがそれである。演算装置は、加算・減算などの算術演算、AND・OR・NOTなどの論理演算、比較(2つの値が等しいかどうかなど)、ビットシフト等を行う装置である。制御装置は実行に必要な情報を記憶装置から読み出し、実行結果を記憶装置の中の正しい場所に収める。「アイオー」ともいう)は、「入力」(にゅうりょく。output)をひとまとまりに指すための総称である。入力のほうはコンピュータが外の世界からデータ類を得ること、およびその内容であり、出力のほうはコンピュータがデータ類などを外に送り出すこと、その内容である。3つに大別することができる。入出力装置(I/O装置)はコンピュータのインタフェースを介して接続される。1番目の入力装置としては例えば、スマホやタブレットのタッチ画面やカメラやマイクロフォン、PCのキーボード、マウスといったものから、スキャナ、バーコードリーダー、ゲーム機のゲームコントローラ、データグローブなどがある。出力装置としては、スマホやタブレットの液晶画面・スピーカー・バイブレータ、PCのディスプレイといったものから、プリンター、3次元ディスプレイ、ゲーム機のVRヘッドマウントディスプレイといったものまで、幅広いものが存在する。ソリッドステートドライブ(SSD)、SDメモリーカード、磁気ディスク装置、光学ドライブ装置、ネットワークインタフェースなどは、通常3番目の「入力と出力を兼ね備えたもの」に分類される。ゲーム機のゲームコントローラーに振動機能(ぶるぶると震える機能)がついていると「入力と出力を兼ね備えたもの」という分類になる。(コンピュータ)」および「機械語」を参照コンピュータの中枢部である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時間を共有して同時に実行されるように見える。これは動画が実は静止画のフレームの短い連続で作られているのと似ている。このタイムシェアリングは通常、オペレーティングシステムというプログラムで制御されている。具体的に処理すべき作業の有無によらず、コンピュータに自らの演算資源を管理し「ユーザーの指示を待つ」という動作を取らせるためにさえ、ある種のプログラムを必要とする。オペレーティングシステムをはじめとする、コンピュータを動作させるのに必要となるソフトウェアを全般に「システムソフトウェア」と呼ぶ。コンピュータを動作するためオペレーティングシステムは、ユーザー、もしくは他のプログラムからの要求に応じてプログラム(この意味では、アプリケーションソフトウェアもしくは単にアプリケーションという用語も使用される。ソフトウェアという用語も似た意味合いだが、これはプログラム一般を指すより広い概念である)をメモリー上にロードし、プログラムからの要求に応じていつ、どのリソース(メモリやI/O)をそのプログラムに割り当てるかを決定する。オペレーティングシステムはハードウェアを抽象化した層を提供し、他のプログラムがハードウェアにアクセスできるようにする。デバイスドライバと呼ばれるコードがその例である。これによってプログラマは、コンピュータに接続された全ての電子装置について、その奥深い詳細を知る必要なくそれらの機械を使うプログラムを書くことができる。ライブラリと呼ばれる再利用可能な多くのプログラム群を備え、プログラマは自ら全てのプログラムを書くことなく、自らのプログラムに様々な機能を組み込むことができる。CUIとGUIハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化されたユーザインタフェースを兼ね備えている。Smalltalk(スモールトーク)によるグラフィカルユーザインタフェース環境を実現した。Windows(ウィンドウズ)の発売、普及により、グラフィカルユーザインタフェース(GUI)が一般的にも普及することとなった。Systemが開発されグラフィカルユーザインタフェースが実現した。CUIとGUIはそれぞれ長所と短所があり、GUIは初心者に優しいので初心者向けにはもっぱらGUIを使う操作法が教えられ、上級者あたりになるとGUIとCUIを併用することになり、コンピュータ技術者やシステム運用エンジニアなどはしばしば主にCUIを使いGUIは補助的に使う。現在CUIを使う人はGUIとCUIを同時並行的に使用しGUIのマルチウィンドウのいくつかをCUI状態で使うといったことも一般的である。LinuxなどではGUIモードとCUIモードを根本的に切り替えるということも可能である[7]。組み込まれた非常に小さく安価なコンピュータであり、組み込みシステムでは組み込みOSと呼ばれるOSを用いる。2019年時点でのシェアを見ると、東京大学の坂村健が開発し無料配布可能で機器開発者が改変することも許されているTRON(トロン)系OSのシェアが世界第1位のおよそ60%であり、24年連続トップ[8]。TRON系のなかでもITRON(アイトロン)が最も普及している[8]。TRON以外はPOSIX系つまりUNIX系、Linux類である[8]。OS(シンビアン・オーエス)など。小規模な組み込みシステムのなかには、明確なOSを内蔵していないものもある。約27%である[9]。Androidも広い意味でのLinuxの一種であり、より具体的に言うとLinuxのカーネルを一部改編し他のオープンソース・ソフトウェアを組み合わせたものである。7割の人々が実は意識せずにLinuxの一種を毎日使っているわけである。2.33%となっている[10]。このMacOSはFreeBSDを基にしたOSでありUNIX系である。スーパーコンピュータのOSは、2021年現在、ほぼ100%、Linuxである。スーパーコンピュータ用は2000年ころはUNIXが9割ほどを占めていたが、その後の10年間つまり2010年ころまでにそのほぼ全てがLinuxに置き換わるということが起きた[11]。デジタルとアナログデジタル計算機とアナログ計算機という分類もあるが、アナログ計算機は現代ではほとんどマイナーな存在となったことから、単にコンピュータという表現でデジタルコンピュータを指すことが多い。「コンピュータ」という語を特に「電子」計算機を指す語として使う場合があり、その用語法では、アナログ計算機のうち特に電子式アナログ計算機を指すのが「アナログコンピュータ」ということになる。対象が連続量ではなく、整数のような離散的であるものは(例えばエレクトロニクスを使っていなくても)「デジタル」である。そろばんはデジタルである。利用してある種の物理現象を表現し、問題を解くのに使われる計算機の一形態である[12]。アナログ計算機はある種の物理量を別の物理量で表し、それに数学的な関数を作用させる。入力の変化に対してほぼリアルタイムで出力が得られる特徴があり(これはいわゆる「高速型」の場合の話である。時間をかけてバランスが取れた状態を見つけ出すとか、移動量の合計を得るといったような「低速型のアナログ計算機」もある)、各種シミュレーションなどに利用されたが、演算内容を変更するためには回路を変更する必要があり、得られる精度にも限界があるので、デジタルコンピュータの性能の向上とDA/ADコンバータの高精度化・高速化によってその役割を終えた。電子式アナログコンピュータの重要な要素として多用されたものと同じ機能を持つ電子回路は、IC化された「オペアンプIC」として今日でも広く使われているが、モジュール化され簡単に使えるものになっているため、一般的にはコンピュータとは認識されていない。以上のようにアナログ計算機が「量」(物理量)によって計算を行うのに対して、デジタルコンピュータは、数(digit)によって「計数的」に計算を行う。現代ではもっぱらエレクトロニクスを用いて、2値論理による論理演算と、二進法による数値表現を使っている(タイガー計算器のように歯車の離散的な角度により十進法を表現するものもデジタルな計算機であるし、機械として見ると2値論理方式の機械でも、数の扱いとしては3増し符号などにより十進法のものもある。数値の表現法である「x進法」と、論理のモデルである「x値論理」は、厳密には別のものであることに注意)。古代バビロニアで手動式デジタル計算器であるアバカスが(そろばんは中国起源説もある)発明される(古代ギリシアでは紀元前300年頃に伝わって来たとされており、日本では西暦1400年頃の室町時代に明から伝わって来たといわれる)。100年に古代ギリシア人によって作られた、現在確認できるものでは世界最古の歯車式アナログ計算機。イギリスのエドモンド・ガンターが、手動式アナログ計算器である計算尺の原型となる対数尺を発明。1623年頃、ドイツのヴィルヘルム・シッカートが、ネイピアの骨を応用し、乗算と加減算を行なえる歯車式の計算機を作った。加減算に関しては繰り上がりができたが、乗算に関しては繰り上がりができなかった。フランスのブレーズ・パスカルが歯車式計算機パスカリーヌを開発。約50台が作成された。wheel(英語版)を発明。その後パスカリーヌより高機能な計算機を開発し、60年間に約1500台が販売された。ライプニッツが二進法の数理を確立。このころ織機の制御にパンチカードが使われ始める。ジョゼフ・マリー・ジャカールがジャカード織機を発明。解析機関の設計者チャールズ・バベッジが第1階差機関の実験モデルを作成。バベッジによる階差機関の開発開始。追加予算が打ち切られ、階差機関の開発が中止となる。シュウツ親子により階差機関が完成。ジョージ・ブールがブール代数を発見する。おける初の標準化機関であり、国際機関。バベッジが解析機関の実現を見ぬまま死去。解析機関のオペレータであるエイダ・ラブレスは世界最初のプログラマとされる。ハーマン・ホレリスがパンチカード方式の自動集計機を実現。フェルディナント・ブラウンが陰極線管(通称ブラウン管)を発明。イギリスの物理学者のジョン・フレミングが二極真空管を発明。扱う国際的な標準化団体。リー・ド・フォレストが三極真空管を発明。同論文でチューリングマシンを提示。ドイツのコンラート・ツーゼが、自宅で機械式の計算機V1を作成。ツーゼがZ1をベースに演算部がリレー、記憶部が機械式のテスト用の計算機Z2を作成。ツーゼがZ2をベースに全リレー式の計算機Z3を作成。ジョン・アタナソフとクリフォード・ベリーが真空管を使って演算処理をするデジタル計算機ABCを作成。ローレンツSZ42暗号機によるドイツ軍の暗号を解読するため、イギリスでColossusが発明される。メモリ部分は機械式に戻る。ジョン・フォン・ノイマンのEDVACに関する報告書の第一草稿が発表。プログラム内蔵方式が提唱される。ペンシルベニア大学で真空管を使って演算処理をするデジタル計算機ENIACが作成される。一般に広く知られた初のコンピュータ。AT&Tベル研究所のウォルター・ブラッテン、ジョン・バーディーン、ウィリアム・ショックレーらがトランジスタを発明。モーリス・ウィルクスとケンブリッジ大学の数学研究所のチームによるEDSAC稼働。