~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 2A9769E6E98F00238D55A6530B277824__1711499400 ✰
Заголовок документа оригинал.:
✰ Nominal type system - Wikipedia ✰
Заголовок документа перевод.:
✰ Система номинальных типов — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Nominal_type_system ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/2a/24/2a9769e6e98f00238d55a6530b277824.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/2a/24/2a9769e6e98f00238d55a6530b277824__translat.html ✰
Дата и время сохранения документа:
✰ 24.06.2024 07:16:29 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 27 March 2024, at 03:30 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Система номинальных типов — Википедия Jump to content

Система номинального типа

Из Википедии, бесплатной энциклопедии

В информатике система типов является номинальной (также называемой номинативной или основанной на имени ), если совместимость и эквивалентность типов данных определяются явными объявлениями и/или именами типов. Номинальные системы используются для определения эквивалентности типов, а также того, является ли тип подтипом другого. Системы номинальных типов контрастируют со структурными системами , где сравнения основаны на структуре рассматриваемых типов и не требуют явных объявлений.

Номинальный тип [ править ]

Номинальная типизация означает, что две переменные совместимы по типу тогда и только тогда, когда их объявления называют один и тот же тип. Например, в C два struct типы с разными именами в одной и той же единице перевода никогда не считаются совместимыми, даже если они имеют идентичные объявления полей.

Однако C также позволяет typedefобъявление, которое вводит псевдоним для существующего типа. Они являются просто синтаксическими и не отличают тип от его псевдонима с целью проверки типа. Эта функция, присутствующая во многих языках, может привести к потере безопасности типов, когда (например) один и тот же примитивный целочисленный тип используется двумя семантически разными способами. Haskell предоставляет синтаксический псевдоним в стиле C в форме type декларация, а также newtype объявление, которое вводит новый, отдельный тип, изоморфный существующему типу. [1]

Номинальный подтип [ править ]

Подобным же образом номинальное подтипирование означает, что один тип является подтипом другого тогда и только тогда, когда это явно заявлено в его определении. Номинально типизированные языки обычно требуют, чтобы объявленные подтипы были структурно совместимыми (хотя Eiffel позволяет объявлять несовместимые подтипы). Однако подтипы, структурно совместимые «случайно», но не объявленные как подтипы, не считаются подтипами.

C++ , C# , Java , Kotlin , Objective-C , Delphi , Swift , Julia и Rust в основном используют как номинальную типизацию, так и номинальную подтипизацию.

Некоторые языки с номинальным подтипированием, такие как Java и C#, позволяют объявлять классы окончательными (или запечатывать их в терминологии C#), что указывает на то, что дальнейшее подтипирование не допускается.

Сравнение [ править ]

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

См. также [ править ]

Ссылки [ править ]

  1. ^ «Отчет Haskell 2010: Объявления и привязки: определяемые пользователем типы данных» . Архивировано из оригинала 4 января 2017 г. Проверено 2 июня 2015 г.

Источники [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 2A9769E6E98F00238D55A6530B277824__1711499400
URL1:https://en.wikipedia.org/wiki/Nominal_type_system
Заголовок, (Title) документа по адресу, URL1:
Nominal type system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)