コンピューティング
コンピューティング(英: computing)の古来の意味は「数えること」と「計算すること」であり、数学の計算を指した。現在は転じてコンピュータによる数値計算や、より広くデータ処理(data processing)、情報処理 (information processing) のような分野のハードウェアとソフトウェアを使う活動全般も指すことがある。
日本語ではどちらも「計算」と呼んでいるが、対応する英語にはcalculationとcomputationがある。条件分岐などを伴う複雑な計算がcalculationではなくcomputationである。
目次 |
定義 [編集]
Computing Curricula 2005[1] では「コンピューティング」を次のように定義している。
一般にコンピューティングは、コンピュータを必要としたり、コンピュータの恩恵を受けたり、コンピュータを作ったりする何らかの目的を持った活動全般と定義することができる。従ってコンピューティングには、様々な目的のためにハードウェアやソフトウェアのシステム設計し構築すること、各種情報を処理し構造化し管理すること、コンピュータを使って科学的な勉強をすること、コンピュータシステムが知的に振る舞うようにすること、コミュニケーションメディアやエンターテインメントメディアを作ったり使ったりすること、何らかの目的に沿って情報を検索し収集すること、などなどを含む。このリストは事実上無限であり、可能性は広大である。
「コンピューティング」はもっと狭く定義されることもあり、ACMは1989年の報告書「学問分野としてのコンピューティング」(Computing as a Discipline)[2]において、以下のように定義した。
コンピューティングの学問分野は、情報の記述や変換のアルゴリズム的な処理に関する体系的研究である。それには、理論、分析、設計、効率、実装、応用が含まれる。コンピューティングの根底にある基本的姿勢は「(効率的に)自動化することができるものは何か?」である。
Computing Curricula 2005[1] では、「コンピューティング」の意味が文脈に左右されることも認識している。
コンピューティングはまた、文脈によってはもっと具体的な意味を持つこともある。例えば、情報システムの専門家がいうコンピューティングは、ソフトウェア技術者のいうコンピューティングとは多少違っている。文脈を問わず、コンピューティングをうまく行うことは複雑で困難なこともある。社会にはコンピューティングをうまく行える人々が必要なので、コンピューティングを職業としてだけでなく、学問領域としても考えなければならない。
コンピュータはデータを読み取り、格納し、操作し、表示する機械である。最も一般的な例は様々なパーソナルコンピュータである。他にも、携帯電話、MP3プレーヤー、ゲーム機などもコンピュータの一種である。
コンピュータ [編集]
詳細は「コンピュータ」を参照
コンピュータは、コンピュータプログラムと呼ばれる一連の命令に従ってデータを操作する機械である。プログラムにはコンピュータがそのまま実行できる形式がある。同じプログラムには人間が読むことができるソースコード形式もあり、プログラマはそれを学び、アルゴリズムをその形式で表現する。ソースコードは異なる種類のコンピュータに持ち込むこともでき、あるソースコードをCPU(中央処理装置)の種類に従って異なる機械が実行できる命令列に変換することができる。
実行プロセスは、コンピュータプログラム内の命令列を実行する。命令はコンピュータが実行すべき計算を表現している。それらは実行している機械の上で単純な一連の動作を引き起こす。それらの動作は、命令の意味論に従った効果を生じる。
コンピュータソフトウェア [編集]
詳細は「ソフトウェア」を参照
コンピュータソフトウェア、あるいは単に「ソフトウェア」は、コンピュータプログラム群と関連するデータの集まりであり、コンピュータに何をどうすればよいか指示を出す。ソフトウェアとは、何らかの目的のためにコンピュータのストレージ内に格納されている1つ以上のコンピュータプログラムとデータを指す。すなわちソフトウェアは、データ処理システムの操作に関する一連の「プログラム、手続き、アルゴリズム」とその「ドキュメンテーション」である。ソフトウェアは、ハードウェアに直接命令を提供することで、あるいは別のソフトウェアの入力として作用することで機能を実行する。用語としては、実体のある機器を意味するハードウェアの対義語として生まれたもので、ソフトウェアは実際に触れることはできない[3]。またソフトウェアと言ったとき、アプリケーションソフトウェアだけを意味することもある。本来はコンピュータとは無関係だった様々な形態のデータ、例えばフイルム、テープ、レコードなどもソフトウェアに含むことがある[4]。
アプリケーションソフトウェア [編集]
詳細は「アプリケーションソフトウェア」を参照
アプリケーションソフトウェア、あるいは「アプリケーション」は、ユーザーの特定の仕事を支援するよう設計されたソフトウェアである。例えば、企業アプリケーション、会計ソフトウェア、オフィススイート、グラフィックソフトウェア、メディアプレーヤーなどがある。多くのアプリケーションは主に文書を扱う。コンピュータとシステムソフトウェアと共にバンドルされることもあるし、単独で販売されることもある。バンドルされたアプリケーションだけで十分ということもある。
アプリケーションソフトウェアと対応する概念としてシステムソフトウェアとミドルウェアがある。これらはコンピュータの能力を管理統合するが、ユーザーがコンピュータを使って実際にやりたいことに直接関わるものではない。システムソフトウェアはアプリケーションの役に立ち、アプリケーションがユーザーの役に立つ。
他の分野にたとえるとわかりやすい。例えば、ショッピングモールは買い物客が探している商品を直接提供することはないが、小売店にスペースとサービスを提供し、小売店が買い物客に商品を提供する。鉄橋は鉄道の線路を支持し、川の上を列車が通行できるようにする。それによって旅客を輸送できる。
アプリケーションソフトウェアは、特定のコンピューティングプラットフォームやシステムソフトウェアで特定の目的を果たすのに使われる。Microsoft Office などのアプリケーションは、いくつかの異なるプラットフォームで動作するバージョンがある。特定のプラットフォームでのみ動作するアプリケーションは、Windows用地理情報アプリケーション、Android用教育アプリケーション、Linux用ゲームなどと呼ばれる。特定のプラットフォームでしか動作しない新たな人気アプリケーションが登場すると、そのプラットフォーム自体の人気が高まる。そのようなアプリケーションソフトウェアをキラーアプリと呼ぶ。
計算機科学 [編集]
詳細は「計算機科学」を参照
計算機科学は、情報技術とコンピューティングにおける科学的かつ数学的なアプローチである[5][6]。
計算機科学は、コンピュータの実装と応用についての実践的技術を扱う分野と純粋に理論的な分野とに分けられる。計算問題の基本的性質を研究する計算複雑性理論は非常に抽象的だが、コンピュータグラフィックスなどは実世界での応用的側面が強い。他に計算の実施・実装に注力する分野もある。例えばプログラミング言語理論は計算の記述方法を研究するが、コンピュータプログラミングそのものの研究ではプログラミング言語を使う際の様々な側面を研究し、マンマシンインタフェースは人間にとってコンピュータを使いやすくする方法を探究する。
計算の歴史 [編集]
計算の歴史は計算機の歴史より長く、現代のコンピュータ技術が登場する以前は紙とペンや、チョークと石版などを使っていた。
コンピューティングは数の表現方法と密接に関連している。しかし「数」の抽象概念が生じるずっと以前から、文明の目的にかなう数学的概念が存在していた。例えば、数を数える際の基本である全単射、測定で使用する基準との比較、直角を作るための辺の長さが3-4-5の直角三角形などである。
数の概念は結局、物を数えることを他人に教えていくうちに具体的で馴染み深いものになっていった。どんな言語にも少なくとも「1」と「2」に対応する単語が存在し(例外としてピラハン語がある)、クロウタドリなどの動物にも物の数を区別できるものがいる[7]。
歴史上最も古くからある既知の計算道具はアバカスであり、紀元前24世紀ごろにバビロンで発明されたとみられている。砂の上に線をひき、そこに石を置いて計算していた。そろばんはその後改良されていき、今も計算道具として使われている。これが既知の最古の計算器で、ギリシアで新たな計算手法が生まれる2000年以上前から存在していた。
科学と理論 [編集]
ハードウェア [編集]
命令レベルの分類 [編集]
メモリが日常化して、CPUを命令レベルで性能向上させる方向に注目が集まった。命令フェッチと実行のサイクルを高速化する様々な手法が開発された。
- 命令セットアーキテクチャを単純化して命令を高速実行できるような設計:RISC (逆は CISC)
- スーパースケーラ
- VLIW アーキテクチャによる明示的な並列性。
ソフトウェア [編集]
ビジネス・コンピューティング [編集]
人間的要素 [編集]
コンピュータセキュリティ [編集]
データ [編集]
数値データ [編集]
文字データ [編集]
その他のデータ関連項目 [編集]
メカトロニクス [編集]
専門団体 [編集]
- 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)
脚注 [編集]
- ^ a b The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005: The Overview Report (pdf)
- ^ Computing As a Discipline (pdf)
- ^ “Wordreference.com: WordNet 2.0”. Princeton University, Princeton, NJ. 2007年8月19日閲覧。
- ^ “software..(n.d.).”. Dictionary.com Unabridged (v 1.1). 2007年4月13日閲覧。
- ^ doi:10.1145/63238.63239
これはおそらく他の言語版からコピーされた出典です。日本語版では副テンプレートはまだ作成されていません。テンプレートページを開いて該当言語版からコピーする必要があります。通常英語版ページ "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information." - ^ Wegner, P. (October 13–15, 1976). “Research paradigms in computer science”. Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA. "Computer science is the study of information structures"
- ^ コンラート・ローレンツ 『ソロモンの指環 動物行動学入門』
関連項目 [編集]
外部リンク [編集]
- Free on-line dictionary of computing (FOLDOC)
- open-access repository of publications - Department of Computing - Imperial College London
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||