Лучшие вопросы
Таймлайн
Чат
Перспективы

Высший тип

универсальный тип; тип, содержащий в себе каждый возможный объект в нужной системе типов Из Википедии, свободной энциклопедии

Remove ads

Высший тип (универсальный супертип) — тип, применяемый в ряде теорий типов и языков программирования, который содержит каждый возможный объект системы. Высший тип иногда именуется универсальным супертипом, то есть все остальные типы в любой отдельно взятой системе типов являются подтипами самого верхнего. Двойственное понятие — низший тип (универсальный подтип), не содержащий никаких возможных значений или подтипов.

Remove ads

Поддержка в языках программирования

Суммиров вкратце
Перспектива

Языки программирования с явной поддержкой высшего типа. Большинство объектно-ориентированных языков программирования включают универсальный базовый класс:

Подробнее Название, Языки ...

C++ выделяется среди объектно-ориентированных языков тем, что не имеет универсального супертипа. Тип «указатель на void» может принимать указатель на любой объект, даже несмотря на то, что void-тип сам по себе не является универсальным типом, а лишь единичным типом.

Необъектно-ориентированные языки обычно не имеют универсального супертипа (или полностью поддерживают полиморфизм подтипов). Common Lisp является исключение в том плане, что его встроенные типы образуют иерархию типов, даже когда его объектная система CLOS не используется.

В большинстве языков программирования высший тип — это абстрактный тип, который не содержит элементов, не являющихся элементами некоторого (объявленного) подтипа. В данном случае Java является исключением: выражение new Object() вполне корректно.

Высший тип используется как обобщённый тип, в первую очередь в языках без поддержки параметрического полиморфизма. Например, до добавления обобщённых типов в Java 5, коллекция классов в библиотеке Java (исключая массивы Java) поддерживали ссылки на тип Object; при этом способе любой несобственный тип может быть добавлен в коллекцию. Высший тип также часто используется для поддержки объектов неизвестного типа.

В языках со структурной системой типов высший тип — это пустая структура. Например, объекты в OCaml структурно типизированы; пустой тип объекта (тип объекта, не имеющего методов), «< >», — высший тип для объектных типов. Любой объект в OCaml может быть явным образом приведен к этому типу, хотя результат может быть довольно бесполезным.

Высший тип может также быть представлен как неявный тип в языках с нестатической типизацией. Языки с динамической типизацией часто поддерживают понижающее приведение (или «уточнение типа» (type refinement)) для предоставления программисту возможности указывать более специфический тип для объекта в ходе выполнения программы. Необходимо отметить, что понижающее приведение из типа void * в языке C++ не может быть выполнено в «безопасном» стиле, когда неудачное приведение выявляется средой языка.

Remove ads

Литература

  • Пирс Б. Типы в языках программирования. Добросвет, 2012. — 680 с. ISBN 978-5-7913-0082-9.
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads