抽象化
計算機科学において詳細を捨象し、一度に注目すべき概念を減らすことおよびその仕組みである。この概念は数学における「抽象化」からのアナロジーである。数学での抽象化技法の起源は数学的定義である。例えば、コンピュータでも数学でも、数はプログラミング言語上の概念であり、数学上の概念でもある。数の計算概念は数学の概念に基づいているため、実装の詳細はハードウェアとソフトウェアに依存したとしても、それが制約とはならない。 大まかに言えば、抽象化は制御抽象化とデータ抽象化に分けられる。制御抽象化は動作の抽象化であり、データ抽象化はデータ構造の抽象化である。例えば、構造化プログラミングでの制御抽象化とは、サブプログラムや定式化された制御フローの使用を意味する。データ抽象化とは、本来ビット列であるデータを意味のある方法で扱うことを意味する。例えば、データ型の背景にある動機は抽象化である。オブジェクト指向プログラミングはデータとコードを同時に抽象化する試みと見ることもできる。 chatGPT.icon
「抽象化」は、複雑なシステムやプロセスをよりシンプルで理解しやすい形に変換するプロセスを指します。抽象化は、詳細を隠蔽し、ユーザーや開発者が主要な機能や振る舞いに集中できるようにすることで、システムの複雑さを管理します。
例えば、コンピュータのオペレーティングシステムは、ハードウェアの詳細を抽象化します。ユーザーやアプリケーション開発者は、具体的なハードウェアの動作や管理について心配することなく、ファイルを保存したり、プログラムを実行したりすることができます。これは、オペレーティングシステムがハードウェアの詳細を抽象化し、ユーザーに対してシンプルで一貫したインターフェースを提供しているからです。
Keplerの文脈では、「抽象化」は、データの物理的な保存場所をユーザーから隠蔽するプロセスを指します。Keplerは、データの保存場所とアクセス制御のルールを指定するための「Orbit」という抽象的な概念を提供します。これにより、ユーザーはデータの保存場所を自由に選択でき、それがローカルのファイルシステムであるか、クラウドベースのストレージサービスであるか、または分散型ファイルシステムであるかに関係なく、同じアクセス制御と管理のフレームワークを使用できます。
Wikiの説明となんか違う気もするけど