コンピューティング

コンピューティング（英: computing） （古来の意味）「数えること」と「計算すること」であり、算術ないしは数学の計算を指した。 （現在の意味）上の意味に加えて、広義に、コンピュータを使う活動全般も指す。たとえば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世紀ころのものだと推定されており、現在確認できる最古の歯車式計算機である。これは天球上の天体の位置を計算するために使われていたと考えられている。 バビロニアのアバカス。これは粘土板に葦ペンを押し付けて楔形文字でバビロニア式の60進法表記の25:47 (十進の1547)と書いてある。 研究者からは「YBC 7289」と呼ばれているバビロニアの粘土板（紀元前1800-1600年頃のもの）。 2の平方根。近似値は60進法で4桁、10進法では約6桁に相当する。1 + 24/60 + 51/602 + 10/603 = 1.41421296... [1]。 古代エジプトのパピルスに書かれた数学に関する文書 アンティキティラ島の機械 20世紀後半のコンピュータを用いたコンピューティングのオーソドックスで古典的な分類としては次のものがあった。 数値計算 データ処理 (data processing) 情報処理 コンピュータ制御 - コンピュータで制御を行うこと。 その後コンピューティングは様々な方向で発展し、次のようなコンピューティングが登場した。 ビジネス・コンピューティング（英: buisiness computing） - ビジネスの経営や運営に役立つコンピュータを開発したり、そのようなコンピュータを経営や運営に実際に役立てること。たとえばERP、CRM、SCMなどを目的としたシステムを開発したり、それを自社のビジネスのために使うこと。 ヴィジュアルコンピューティング（英: visual computing） - "ヴィジュアルな" つまり視覚的な（あるいは画像的、映像的な）処理ができるコンピュータを開発したり、そのようなコンピュータを使うことであり、たとえばコンピュータグラフィックス、デジタル画像処理、映像処理、画像・映像認識（en:computer vision）用のコンピュータを開発したり使うことである。 リアルタイムコンピューティング（英: real-time computing、RTC） - イベント発生からシステムが応答するまでの時間がきわめて短くなければならないという制約に応えるコンピュータ（リアルタイムシステム）を開発したり、使用すること。 ユーティリティコンピューティング（英: utility computing）- コンピュータのリソース（CPUの処理能力やストレージ容量など）を、まるで電気/ガス/水道のように、使用した量に応じて変動する従量課金方式で提供すること。 並列コンピューティング（英: parallel computing。主に並列計算と訳す）- 複数のコンピュータやプロセッサーでひとつのタスク処理を行い、高速化を図ること。 コンカレント・コンピューティング（英: concurrent computing。主に並行計算と訳す） - 一つのプロセッサに複数のタスクを存在させ、各タスクに計算を割り振ること。タイムシェアリング技術などを使う。 分散コンピューティング（英: distributed computing）- 複数のコンピュータをネットワークを介して連携させて問題を解決する手法であり、複数のコンピュータをまるで単一の強力なコンピュータのように機能させること。 グリッドコンピューティング（英: grid computing） - インターネットなど広域のネットワークで繋がっているが地理的には離れている計算資源を複合的に結びつけ、ひとつのコンピュータシステムとしてサービスを提供する仕組み。 モバイルコンピューティング（en:Mobile computing）- 持ち運び可能なコンピュータを開発したりそれを使うことであり、たとえばノートPC、PDA、タブレット型PC、スマートフォンなどを開発したりユーザとして使うこと。 ユビキタスコンピューティング（英: ubiquitous computing）- あらゆるモノにコンピュータが内蔵され、いつでも、どこでもコンピュータの支援が得られるような状態にすること。コンピュータがコンピュータとして意識されることなく、特に意識しなくてもいつでもコンピュータが身近にある状態にすること。パロアルト研究所のマーク・ワイザーが1988年に提唱したが、東京大学の坂村健も1980年代前半から同様の概念である「TRON」構想を提唱していた。 グリーンコンピューティング（英: green computing） - 地球環境への負荷が小さいコンピュータやITシステムなどを開発したり使用することであり、広義にはそれに加えて、ITを活用して地球環境への負荷を低減する取り組み（たとえばテレワーク、ビデオ会議、遠隔授業などにより、人の移動に伴うエネルギー浪費の削減など）を併せて指す。 クラウドコンピューティング（英: cloud computing） - インターネットなどのネットワークを介しコンピュータ資源をサービスの形で提供することや、そのようなサービスをユーザとして使うこと。 サーバーレス・コンピューティング（英: serverless computing） - クラウド・コンピューティングの実行モデルのひとつであり、クラウド・プロバイダーがアプリケーションに必要なマシン・リソースの割り当てを動的に管理し、事前の購入に基づく請求ではなく、各アプリケーション要求を満たすために使用される個々のリソース量に基づいて請求を行うもの。 エッジコンピューティング（英: edge computing） - ネットワークのエッジ（端点）つまり利用者らの近くやデータが生じる場所に処理装置を分散配置してデータ処理を行うこと。 フォグコンピューティング（en:fog computing） - データを端末とクラウドの間の端末に近い場所でミドルウェアにより分散処理することであり、クラウドへ負担が集中することを回避すること。シスコシステムズがIoT対応のために提唱した概念に由来し、クラウドコンピューティングやエッジコンピューティングと関係のある手法であり、「クラウド（雲）」との位置関係から「フォグ（霧）」と形容されている。 ハイパフォーマンスコンピューティング (英: high-performance computing、HPC) - 他の一般的なコンピューターをはるかにしのぐ速度でデータを処理し、計算を実行することであり、また、そのようなソリューション（解決策、実行手段）を提供すること。 スーパーコンピューティング（英: supercomputing） - ハイパフォーマンス・コンピューティングの一種であり、強力なコンピューターであるスーパーコンピューターを使用して決定や計算を行い、解決までの全体時間を短縮すること。 セマンティックコンピューティング（en:semantic computing） - 人間が使う「ことば」（自然言語による文章）の意味をコンピュータに解析させ理解させ、高品質で精度の高い情報収集・情報検索・コンテンツ作成などに役立てること。 コグニティブコンピューティング（英: cognitive computing）- （人工知能と混同されてしまうことがあるが、正確には異なっており）コンピュータで人間の知能の代わりに判断させることを目指すのではなく、コンピュータを人間の判断を助けるために使うことである。たとえば、人間の思考プロセスを模倣させて、（人間に分かるような）仮説を生成することなどである。 フィジカルコンピューティング（en:physical computing）- コンピュータの周囲に存在しているフィジカルな世界（実在世界）と相互作用できるコンピュータを開発したり使用することであり、周囲の実在世界をセンサ類で感知し、アクチュエータ類（モータ、サーボなど）やライト類などで実在世界に働きかけるようなコンピュータを開発したり使用すること。（この定義だと広義には工場内の大規模な生産制御システムなども含まれることになるが、メイカームーブメントの文脈ではフィジカルでも主にSBCを利用した小規模なシステムの開発や使用を指している。）また、そのようなコンピュータを使い人とコンピュータがインタラクティブにフィジカルなやり取りをしたり、あるいは、そのようなコンピュータを介した人と実在世界の間の相互作用を実現すること。 レトロコンピューティング（en:retrocomputing） - すでに古くなり骨董品的な位置づけとなったコンピュータを使用すること。通常、レトロコンピューティングは実用的な目的で行うものではなく、趣味として行われており、レトロコンピューティングのエンスージアストは古く希少になったハードウェアやソフトウェアに懐かしさやノスタルジーを感じてそれを蒐集する。 最近 技術の進展がめざましく、激しい開発競争が行われているコンピューティングとしては次のようなものがある。 AIコンピューティング（英: AI computing） - コンピュータで機械学習などを行いAI（人工知能）を実現すること。 量子コンピューティング（en:Quantum computing） - 量子力学を利用したコンピュータ（量子コンピュータ、を開発し、それ）を使い、複雑な問題を古典的なコンピューターよりも速く解決することであり、コンピューターサイエンス、物理学、数学などを用いた学際的な活動。 階差機関を使い関数の多項式近似を計算することもコンピューティングである。 クラウドコンピューティング スーパーコンピュータを使い高速に計算させることは、スーパーコンピューティングであり、並列コンピューティング。 コンピュータを使い人工知能を実現することはAIコンピューティング。（写真はchatGPT） その他、一般的とは言えないコンピューティングであって研究も限られているようなコンピューティングはアンコンベンショナル・コンピューティン（en:unconventional computing）と呼ばれ、「代替コンピューティング（英: alternative computing）」とも呼ばれる。たとえば次のようなものである。 光コンピューティング（英: optical computing） - 現在一般的なエレクトロニクス方式ではなく、光の諸原理やその性質を用いるコンピュータ、ストレージなどを開発すること。 スピントロニクスベースド・コンピューティング（英: spintronics-based computing ）- （現在一般的な電荷によるエレクトロニクスではなく）スピントロニクスつまり電子のスピンを根本原理に据えたコンピュータを開発すること。 モレキュラー・コンピューティング（英: molecular computing） - モレキュラーすなわち分子の変化（化学変化）を原理として作動するコンピュータを開発すること。 DNAコンピューティング（英: DNA computing）- 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)