Лучшие вопросы
Таймлайн
Чат
Перспективы
Высший тип
универсальный тип; тип, содержащий в себе каждый возможный объект в нужной системе типов Из Википедии, свободной энциклопедии
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.
Некоторые внешние ссылки в этой статье ведут на сайты, занесённые в спам-лист. |
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads