抽象データ型とは? わかりやすく解説

抽象データ型

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/10/17 06:02 UTC 版)

抽象データ型(ちゅうしょうデータがた、: abstract data type、ADT)とは、データ構造とその操作手続きを定義したデータ型、またはデータ抽象[注釈 1]の方法の1つ。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作[注釈 2]のまとまり[注釈 3]である。

抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。

概要

1960年代の構造化プログラミングの時点で既に、(よく知られている)段階的詳細化といった手法や制御構造の利用の励行などの他、データ構造とコードを連携させ、データ構造の変更を行うと変更部分がソースコード中に散在してしまうというそれ以前のプログラミングにおける問題点への対処にもなる、データ抽象に関する議論は現れている(『構造化プログラミング』(日本版はサイエンス社、1975年)の、全体の約半分はダイクストラによる考察だが、残り約半分はホーアダールSimulaの設計者)によるデータ論である)。抽象データ型はデータ抽象の具体的手法として1974年にバーバラ・リスコフの提案した言語CLUにおいて提案された。

インタフェースと実装の分離

プログラムが実装されたとき、抽象データ型は実装を隠蔽するインタフェースを表す。実装は将来において変更されうるので、抽象データ型のユーザーは実装ではなくインタフェースに関心がある。

抽象データ型の強みはユーザーから実装が隠蔽されていることである。インタフェースのみが公開されるのである。このことは、抽象データ型がいろいろな方法で実装されうることを意味するが、インタフェースに忠実な限りユーザープログラムは影響を受けないのである。

例えば、二分探索木抽象データ型はいくつかの方法で実装できる。例えば、二分木AVL木赤黒木、配列である。しかし実装に関わらず二分探索木は「挿入」「削除」「検索」といった同じ操作が可能である。

抽象データ構造

抽象データ構造とは、実際のデータ構造による実装に関わらず、操作の集合とその計算量により定義されるデータのための抽象的な領域のことである。

具体的なデータ構造の選択がアルゴリズムの効率的な実装にとって重要である一方、抽象データ構造の選択は効率的なアルゴリズムの設計とその計算量の推定にとって極めて重要である。

この概念はプログラミング言語の理論で用いられる抽象データ型の概念に非常に近い。多くの抽象データ構造や抽象データ型の名前は具体的なデータ構造の名前と一致する。

具体例

抽象データ型としての有理数

有理数は計算機においてはそのまま扱うことはできない。有理数の抽象データ型は以下のように定義できる。

コンストラクタ: 2つの整数





固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「抽象データ型」の関連用語











抽象データ型のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



抽象データ型のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの抽象データ型 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS