![view](/schemes/projectsu/viewie.png)
![edit](/schemes/projectsu/edit.png)
![attach](/schemes/projectsu/upload.png)
![history](/schemes/projectsu/history.png)
![swikis](/schemes/projectsu/swikis.png)
![top](/schemes/projectsu/top.png)
![changes](/schemes/projectsu/recent.png)
![search](/schemes/projectsu/search.png)
![help](/schemes/projectsu/help.png)
抽象データ型
Abstract Data Type(ADT)
端的には「ユーザーが定義可能なデータ型」、それを可能にする言語機能のこと。あるいは「データ型による抽象化手法」のこと。--sumim
カプセル化のことを指すこともある。--sumim
『ソフトウェア工学』資料より。データ構造をその表現と扱う手続きの集合で一まとまりで表現したものを抽象データ型と呼ぶ。
StandardMLによる解説
--SHIMADA
Rubyの用語集での説明
上のソフトウェア工学と同じサイト?の、オブジェクト指向の歴史
(手法として)データ型による抽象化。
この言い回しを借りるとオブジェクト指向は「手続きによる抽象化」(Procedual Data Abstruction、PDA)となり、見方によっては対極のアプローチとなる。
Smalltalk は表面上 PDA しかサポートしていないが、内部的に(バイトコードレベルでは)ADT を手法として使用している。
C++ は従来の手続き型に加えて、ADT、PDA をサポート。
ストラウストラップのマルチパラダイム云々はここいらへんから来ているのかも。
SIMULA 67 もしかり。
CLU の流れの ML 系は ADT 。PDA も可能なのかはよく知らない。--sumim
- 「Object-Oriented Programming Versus Abstract Data Types」(PDF)
オブジェクト指向の定義は、単にクラス・オブジェクトを使ったプログラミングというありがちなオレ定義は論外としても、メッセージ送信メタファに立脚した…とするのは素人で(^_^;) (意識する、しないにかかわらず)アラン・ケイ/Smalltalk/哲学 寄りで、カプセル化・継承・多態性…とするのは、(同じく、意識する、しないにかかわらず)ビャーネ・ストラウストラップ/C++/実務 寄り。学術的には「手続きによる抽象化」手法とするのがしっくりきそう…。--sumim
このページを編集 (1820 bytes)
![Congratulations!](/schemes/projectsu/happy.gif) |
以下の 7 ページから参照されています。 |
This page has been visited 11024 times.