Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

В чём разница между примитивными, структурными и абстрактными типами данных? Почему абстрактный тип данных не считается структурным?

Программирование+2
Дмитрий Прохожий
  ·   · 575
Веб-разработчик, геймер, специалист по этике  · 10 авг 2021

Абстрактный тип данных это концепция совершенно из другой области, нежели примитивные и структурные типы данных, их вообще нельзя никак сравнивать.

АТД, в английской терминологии ADT, abstract data type, это "просто" тип данных, описание класса вещей, которые вы используете в программе. Абстрактным его делает то, что описаны только операции, которые доступны с этим типом данных, но не его конкретная реализация в оперативной памяти.

Например, если система типов в нашем ЯП позволяет определять АТД, мы можем определить в своей программе тип Printable, то есть, что-то, способное быть напечатанным. У этого типа будет определён один метод: `print`, который "печатает" данные на целевую канву. Конкретная реализация этого АТД, будет обязана реализовать этот метод, но с точки зрения системы типов нас это уже не волнует.

Примитивные типы данных отличаются от структурных типов данных так же, как атомы отличаются от молекул. Структурные типы данных состоят из данных примитивных типов и, возможно, других структурных типов.

Традиционный пример структурного типа данных это класс, описывающий геометрическую точку в трёхмерном пространстве, Point. Он содержит три элемента данных, координаты x, y и z, и каждая координата представлена данными примитивных типов, например, double, числа с плавающей точкой двойной точности.

Образовательная платформа Хекслет  · 29 июл 2021  · ru.hexlet.io
Примитивные типы данных, как правило, это булево значения, числа и строки. Иногда туда входят специальные значения языка (null, undefined). Структурные данные, как следует из названия, имеют некоторую структуру. Например... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars