Абстрактные типы данных

Абстрактные типы данных

Абстра́ктный тип да́нных (АТД) — это тип данных, который предоставляет для работы с элементами этого типа определённый набор функций, а также возможность создавать элементы этого типа при помощи специальных функций. Вся внутренняя структура такого типа спрятана от разработчика программного обеспечения — в этом и заключается суть абстракции. Абстрактный тип данных определяет набор независимых от конкретной реализации типа функций для оперирования его значениями. Конкретные реализации АТД называются структурами данных.

В программировании абстрактные типы данных обычно представляются в виде интерфейсов, которые скрывают соответствующие реализации типов. Программисты работают с абстрактными типами данных исключительно через их интерфейсы, поскольку реализация может в будущем измениться. Такой подход соответствует принципу инкапсуляции в объектно-ориентированном программировании. Сильной стороной этой методики является именно сокрытие реализации. Раз вовне опубликован только интерфейс, то пока структура данных поддерживает этот интерфейс, все программы, работающие с заданной структурой абстрактным типом данных, будут продолжать работать. Разработчики структур данных стараются, не меняя внешего интерфейса и семантики функций, постепенно дорабатывать реализации, улучшая алгоритмы по скорости, надежности и используемой памяти.

Различие между абстрактными типами данных и структурами данных, которые реализуют абстрактные типы, можно пояснить на следующем примере. Абстрактный тип данных список может быть реализован при помощи массива или линейного списка, с использованием различных техник динамического выделения памяти. Однако каждая реализация определяет один и тот же набор функций, который должен работать одинаково (по результату, а не по скорости) для всех реализации.

Абстрактные типы данных позволяют достичь модульности программных продуктов и иметь несколько альтернативных взаимозаменяемых реализаций отдельного модуля.

Примеры АТД

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Абстрактные типы данных" в других словарях:

  • Типы данных — В этой статье перечисляются типы данных, о самом понятии см тип данных В различных операционных системах, языках программирования, спецификациях форматов данных фигурируют различные символические обозначения для типов данных. Часть из них… …   Википедия

  • Абстрактный тип данных — Для улучшения этой статьи по информационным технологиям желательно?: Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное. Проставив сноски, внести более точные у …   Википедия

  • Устройство хранения данных — НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство)  часть вычислительной машины, физическое… …   Википедия

  • Haskell — Класс языка: функциональный, ленивый, модульный Тип исполнения: компилируемый, интерпретируемый Появился в: 1990 …   Википедия

  • Limbo — Семантика: Конкурентное программирование Появился в: 1995 Автор(ы): Шон Дорвард, Фил Винтерботтом, Роб Пайк Типизация данных: строгая Испытал влияние: C …   Википедия

  • Хаскелл — Haskell Семантика: функциональный Тип исполнения: интерпретируемый, компилируемый Появился в: 1990 г. Типизация данных: статическая …   Википедия

  • Хаскел — Haskell Семантика: функциональный Тип исполнения: интерпретируемый, компилируемый Появился в: 1990 г. Типизация данных: статическая …   Википедия

  • Хаскель — Haskell Семантика: функциональный Тип исполнения: интерпретируемый, компилируемый Появился в: 1990 г. Типизация данных: статическая …   Википедия

  • Класс (программирование) — У этого термина существуют и другие значения, см. Класс. Класс в программировании набор методов и функций. Другие абстрактные типы данных  метаклассы, интерфейсы, структуры, перечисления  характеризуются какими то своими, другими… …   Википедия

  • Стек — Простое представление стека У этого термина существуют и другие значения, см. Стек (значения). Стек (англ. stack  стоп …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»