コンピューティング

**コンピューティング**（）
*（古来の意味）「数えること」と「計算すること」であり、算術ないしは数学の計算を指した。
*（現在の意味）上の意味に加えて、広義に、コンピュータを使う活動全般も指す。たとえば20世紀後半などでは主として、コンピュータによる数値計算や、より広くデータ処理 (data processing)や情報処理 (information processing) などを指していたが、さらに近年ではコンピュータを使いAIを実現することなど、コンピュータを使うさまざまな活動を広く指している。

以前は、日本語では漢字を使い「計算」などと訳すことが多かったが、最近では英語のcomputingをそのまま音写して「コンピューティング」と表記することも多い。

## 定義
*Computing Curricula 2005* では「コンピューティング」を次のように定義している。

*Computing Curricula 2005* では、「コンピューティング」の意味が文脈に左右されることも認識している。

「コンピューティング」は1980年代ではもっと狭く定義されることがあった。たとえばACMは1989年の報告書「学問分野としてのコンピューティング」(Computing as a Discipline)において、以下のように定義した。

## コンピューティングの歴史
:を参照のこと。

コンピューティングの歴史は計算機の歴史より長く、現代的なコンピュータが登場する前に遡れば、機械式計算機、紙とペン、石版とチョーク、パピルスと葦ペン、粘土板と葦ペン、砂と指と石などを使った時代があった。

コンピューティングは数の表現方法と密接に関連している。

現在知られている歴史上最も古い計算道具はアバカスであり、これは紀元前2700年-紀元前2300年ころにバビロニアのシュメールで発明されたと考えられている。シュメールのアバカスは砂の上にカラム状の線を引き石を置いて計算するもので、シュメール式の60進法に基づいたものだった。これが最初の計算道具であり、ギリシアのアルキメデスの2000年以上も先を行っていた最先端の計算システムであった。バビロニア人は60進法の計算を、粘土板と楔形文字を使って行うこともできた。

古代エジプト人は彼らの数システムを使って物を数え、また数の問題たとえば掛け算や分数の問題を解くということも行っていたという証拠がパピルスに残されている。彼らは独特の分数システムを持っており、たとえば現代で「3/4」と書くところを古代エジプトでは（現代風に書くと）「1/2 + 1/4」に相当するような、分割した書き方をし、それを使い分数計算を行った。その計算能力をたとえばピラミッド建設では設計図の作成、必要な石材の数の算出、労働者らへ支給すべき食料の量や給与の額の計算などに活かした。
:

紀元前3世紀、古代ギリシアのアルキメデスは『方法』を著し、同書で梃子のメカニカルな原理も説明し、そのような原理を数学問題を計算するために使った人物であり、再帰的な手法も用いて数学問題も解き、たとえば「宇宙に存在する砂粒の数」なども計算した。

アンティキラ島付近の沈没船から発見された古代ギリシアのアンティキティラ島の機械は紀元前2世紀ころのものだと推定されており、現在確認できる最古の歯車式計算機である。これは天球上の天体の位置を計算するために使われていたと考えられている。


File:Using-an-Abacus-08.png|バビロニアのアバカス。これは粘土板に葦ペンを押し付けて楔形文字でバビロニア式の60進法表記の25:47 (十進の1547)と書いてある。 
画像:Ybc7289-bw.jpg|研究者からは「YBC 7289」と呼ばれているバビロニアの粘土板（紀元前1800-1600年頃のもの）。 2の平方根。近似値は60進法で4桁、10進法では約6桁に相当する。1 + 24/60 + 51/602 + 10/603 = 1.41421296... https://personal.math.ubc.ca/~cass/Euclid/ybc/ybc.html。
File:Rhind Mathematical Papyrus.jpg|古代エジプトのパピルスに書かれた数学に関する文書
File:NAMA Machine d'Anticythère 1.jpg|アンティキティラ島の機械


## 種類・分類
20世紀後半のコンピュータを用いたコンピューティングのオーソドックスで古典的な分類としては次のものがあった。
*数値計算
*データ処理 (data processing)
*情報処理
*コンピュータ制御 - コンピュータで制御を行うこと。

その後コンピューティングは様々な方向で発展し、次のようなコンピューティングが登場した。
*ビジネス・コンピューティング（） - ビジネスの経営や運営に役立つコンピュータを開発したり、そのようなコンピュータを経営や運営に実際に役立てること。たとえばERP、CRM、SCMなどを目的としたシステムを開発したり、それを自社のビジネスのために使うこと。
*ヴィジュアルコンピューティング（） -  "ヴィジュアルな" つまり視覚的な（あるいは画像的、映像的な）処理ができるコンピュータを開発したり、そのようなコンピュータを使うことであり、たとえばコンピュータグラフィックス、デジタル画像処理、映像処理、画像・映像認識（:en:computer vision）用のコンピュータを開発したり使うことである。
*リアルタイムコンピューティング（、RTC） - イベント発生からシステムが応答するまでの時間がきわめて短くなければならないという制約に応えるコンピュータ（リアルタイムシステム）を開発したり、使用すること。
*ユーティリティコンピューティング（）- コンピュータのリソース（CPUの処理能力やストレージ容量など）を、まるで電気/ガス/水道のように、使用した量に応じて変動する従量課金方式で提供すること。 
*並列コンピューティング（。主に並列計算と訳す）- 複数のコンピュータやプロセッサーでひとつのタスク処理を行い、高速化を図ること。
*コンカレント・コンピューティング（。主に並行計算と訳す） - 一つのプロセッサに複数のタスクを存在させ、各タスクに計算を割り振ること。タイムシェアリング技術などを使う。
*分散コンピューティング（）- 複数のコンピュータをネットワークを介して連携させて問題を解決する手法であり、複数のコンピュータをまるで単一の強力なコンピュータのように機能させること。
*グリッドコンピューティング（） - インターネットなど広域のネットワークで繋がっているが地理的には離れている計算資源を複合的に結びつけ、ひとつのコンピュータシステムとしてサービスを提供する仕組み。
*モバイルコンピューティング（:en:Mobile computing）- 持ち運び可能なコンピュータを開発したりそれを使うことであり、たとえばノートPC、PDA、タブレット型PC、スマートフォンなどを開発したりユーザとして使うこと。
*ユビキタスコンピューティング（）- あらゆるモノにコンピュータが内蔵され、いつでも、どこでもコンピュータの支援が得られるような状態にすること。コンピュータがコンピュータとして意識されることなく、特に意識しなくてもいつでもコンピュータが身近にある状態にすること。パロアルト研究所のマーク・ワイザーが1988年に提唱したが、東京大学の坂村健も1980年代前半から同様の概念である「TRON」構想を提唱していた。
*グリーンコンピューティング（） - 地球環境への負荷が小さいコンピュータやITシステムなどを開発したり使用することであり、広義にはそれに加えて、ITを活用して地球環境への負荷を低減する取り組み（たとえばテレワーク、ビデオ会議、遠隔授業などにより、人の移動に伴うエネルギー浪費の削減など）を併せて指す。
*クラウドコンピューティング（） - インターネットなどのネットワークを介しコンピュータ資源をサービスの形で提供することや、そのようなサービスをユーザとして使うこと。
**サーバーレス・コンピューティング（） - クラウド・コンピューティングの実行モデルのひとつであり、クラウド・プロバイダーがアプリケーションに必要なマシン・リソースの割り当てを動的に管理し、事前の購入に基づく請求ではなく、各アプリケーション要求を満たすために使用される個々のリソース量に基づいて請求を行うもの。
*エッジコンピューティング（） - ネットワークのエッジ（端点）つまり利用者らの近くやデータが生じる場所に処理装置を分散配置してデータ処理を行うこと。
*フォグコンピューティング（:en:fog computing） - データを端末とクラウドの間の端末に近い場所でミドルウェアにより分散処理することであり、クラウドへ負担が集中することを回避すること。シスコシステムズがIoT対応のために提唱した概念に由来し、クラウドコンピューティングやエッジコンピューティングと関係のある手法であり、「クラウド（雲）」との位置関係から「フォグ（霧）」と形容されている。
*ハイパフォーマンスコンピューティング (、HPC)  - 他の一般的なコンピューターをはるかにしのぐ速度でデータを処理し、計算を実行することであり、また、そのようなソリューション（解決策、実行手段）を提供すること。
**スーパーコンピューティング（）  - ハイパフォーマンス・コンピューティングの一種であり、強力なコンピューターであるスーパーコンピューターを使用して決定や計算を行い、解決までの全体時間を短縮すること。
*セマンティックコンピューティング（:en:semantic computing） - 人間が使う「ことば」（自然言語による文章）の意味をコンピュータに解析させ理解させ、高品質で精度の高い情報収集・情報検索・コンテンツ作成などに役立てること。
*コグニティブコンピューティング（）- （人工知能と混同されてしまうことがあるが、正確には異なっており）コンピュータで人間の知能の代わりに判断させることを目指すのではなく、コンピュータを人間の判断を助けるために使うことである。たとえば、人間の思考プロセスを模倣させて、（人間に分かるような）仮説を生成することなどである。
*フィジカルコンピューティング（:en:physical computing）- コンピュータの周囲に存在しているフィジカルな世界（実在世界）と相互作用できるコンピュータを開発したり使用することであり、周囲の実在世界をセンサ類で感知し、アクチュエータ類（モータ、サーボなど）やライト類などで実在世界に働きかけるようなコンピュータを開発したり使用すること。（この定義だと広義には工場内の大規模な生産制御システムなども含まれることになるが、メイカームーブメントの文脈ではフィジカルでも主にSBCを利用した小規模なシステムの開発や使用を指している。）また、そのようなコンピュータを使い人とコンピュータがインタラクティブにフィジカルなやり取りをしたり、あるいは、そのようなコンピュータを介した人と実在世界の間の相互作用を実現すること。
*レトロコンピューティング（:en:retrocomputing） - すでに古くなり骨董品的な位置づけとなったコンピュータを使用すること。通常、レトロコンピューティングは実用的な目的で行うものではなく、趣味として行われており、レトロコンピューティングのエンスージアストは古く希少になったハードウェアやソフトウェアに懐かしさやノスタルジーを感じてそれを蒐集する。

最近 技術の進展がめざましく、激しい開発競争が行われているコンピューティングとしては次のようなものがある。
*AIコンピューティング（） - コンピュータで機械学習などを行いAI（人工知能）を実現すること。
*量子コンピューティング（:en:Quantum computing） - 量子力学を利用したコンピュータ（量子コンピュータ、を開発し、それ）を使い、複雑な問題を古典的なコンピューターよりも速く解決することであり、コンピューターサイエンス、物理学、数学などを用いた学際的な活動。


ファイル:Babbage Difference Engine (Being utilised).jpg|階差機関を使い関数の多項式近似を計算することもコンピューティングである。
File:Cloud computing.svg|クラウドコンピューティング
File:IBM Blue Gene P supercomputer.jpg|スーパーコンピュータを使い高速に計算させることは、スーパーコンピューティングであり、並列コンピューティング。
File:ChatGPT Esperanto.png|コンピュータを使い人工知能を実現することはAIコンピューティング。（写真はchatGPT）


その他、一般的とは言えないコンピューティングであって研究も限られているようなコンピューティングはアンコンベンショナル・コンピューティン（:en:unconventional computing）と呼ばれ、「代替コンピューティング（）」とも呼ばれる。たとえば次のようなものである。
*光コンピューティング（） - 現在一般的なエレクトロニクス方式ではなく、光の諸原理やその性質を用いるコンピュータ、ストレージなどを開発すること。
*スピントロニクスベースド・コンピューティング（ ）- （現在一般的な電荷によるエレクトロニクスではなく）スピントロニクスつまり電子のスピンを根本原理に据えたコンピュータを開発すること。
*モレキュラー・コンピューティング（） - モレキュラーすなわち分子の変化（化学変化）を原理として作動するコンピュータを開発すること。
*DNAコンピューティング（）- DNA（デオキシリボ核酸）を利用して超並列計算を行うコンピュータを開発すること。

## 理論
「計算理論」には、計算可能性理論による「計算可能」という概念がある（ただし現実のコンピュータが行っている処理はそれよりも広い）。

## 科学
### 計算科学
computational science

### コンピュータ科学
computer science

コンピュータ科学は、コンピュータおよびコンピューティングにおける科学的かつ数学的なアプローチである。技術や工学の側面もある（情報技術・情報工学）。情報科学も参照。

コンピュータの実装と応用についての実践的技術を扱う分野と純粋に理論的な分野とに分けられる。後者を理論計算機科学と細分類することもある。たとえば、コンピュータグラフィックスなどは実世界での応用的側面が強い前者であり、情報理論や計算理論といった分野は（実践にも広く応用されるが）基本的な所としては後者の側に入れられよう。他にコンピューティングの実施・実装に注力する分野もある。コンピュータプログラミングそのものの研究ではプログラミング言語などの様々な側面を研究し、ヒューマンマシンインタフェースでは人間にとってコンピュータを使いやすくする方法の探究などといったことがテーマとなる。

## 他
「計算」に対応する英語には、 calculation と computationもあるが、もしそう英訳してしまってはcomputingとは別の用語となってしまう。
理論的には、数学あるいはコンピュータ科学の分野である、計算理論でいう「計算可能」という語が指すような広い範囲が computation である。

## 関連項目

* 情報処理
* コンピュータシステム

### 科学と理論
* コンピュータ科学
* 情報工学
* 計算理論
* 計算模型

* 計算科学
* アルゴリズム
* :en:Metacomputing

### ハードウェア

* コンピュータ
* ハードウェア

* コンピュータネットワーク
* コンピュータシステム
* コンピュータハードウェアの歴史

#### 命令レベルの分類
メモリが日常化して、CPUを命令レベルで性能向上させる方向に注目が集まった。命令フェッチと実行のサイクルを高速化する様々な手法が開発された。
* 命令セットアーキテクチャを単純化して命令を高速実行できるような設計：RISC （逆は CISC）
* スーパースケーラ 
* VLIW アーキテクチャによる明示的な並列性。

### [[ソフトウェア]]
* ソフトウェア工学
* プログラミング
* ソフトウェア特許

### 人間的要素
* ヒューマンマシンインターフェース
* コンピュータアクセシビリティ

### [[コンピュータセキュリティ]]
* 暗号理論 -  情報理論
* クラッカー - ハッカー
* ソーシャル・エンジニアリング

* マルウェア

### [[データ]]
#### 数値データ
* 整数型 - ビット、バイトなど
* 小数の表現
** 浮動小数点型（単精度、倍精度など）
** 固定小数点型
** 有理数
* 十進記数法
** 二進化十進表現 (BCD)
** 3増し符号（エクセス3、XS-3）

* 表現: 二進法 - 八進法 - 十進法 - 十六進法 

* コンピュータの数値表現

### 文字データ
* 格納形態: キャラクタ - 文字列 - テキスト - プレーンテキスト
** 表現: ASCII - Unicode - マルチバイト文字 - EBCDIC  

### その他のデータ関連項目
*データ圧縮
*デジタル信号処理 (DSP)
*画像処理
*データ管理

### 専門団体
* Association for Computing Machinery (ACM)
* 英国コンピュータ協会 (BCS)
* Association for Survey Computing (ASC)
* アメリカ電気電子学会 (IEEE)
* Institution of Electrical Engineers
* International Electrotechnical Commission (IEC)

### 標準化団体
* 国際電気標準会議 (IEC)
* 国際標準化機構 (ISO)
* アメリカ電気電子学会 (IEEE)
* Internet Engineering Task Force (IETF)
* World Wide Web Consortium (W3C)

## 脚注

### 注釈

### 出典

## 外部リンク
*  Free on-line dictionary of computing (FOLDOC)
* open-access repository of publications - Department of Computing - Imperial College London