Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Это сравнение возможностей систем типов и проверки типов на нескольких языках программирования .

Краткие определения

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

Заметки [ править ]

  1. ^ Небезопасные операции хорошо изолированы префиксом «Unchecked_».
  2. ^ с необязательным приведением динамического типа (см. динамическое приведение )
  3. ^ a b c d e f Это почти безопасно, небезопасные функции обычно не используются.
  4. ^ с необязательным динамическим типом (см. поиск динамического члена )
  5. ^ Необязательно, типизация может явно подразумеваться первой буквой идентификатора (известная как неявная типизация в сообществе Fortran).
  6. ^ динамическая проверка расширений типов, т.е. унаследованных типов
  7. ^ явный для статических типов
  8. ^ необязательно для формальных и виртуальных процедур

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

  1. ^ Спецификация языка программирования Go
  2. ^ Лё, Андрес. «Почему в Haskell нет записей со структурной типизацией?» . Переполнение стека . Архивировано 14 марта 2016 года . Проверено 13 апреля 2020 .
  3. ^ a b Кинг, Алексис (19 января 2020 г.). «Нет, системы динамического типа не являются более открытыми по своей сути» . lexi-lambda.github.io . Архивировано 01 марта 2020 года . Проверено 13 апреля 2020 .
  4. ^ Шэн Лян, Гилад Браха. Динамическая загрузка классов в виртуальной машине Java . Том 33, выпуск 10 уведомлений ACM SIGPLAN, октябрь 1998 г.
  5. ^ https://docs.julialang.org/en/latest/manual/types/
  6. Developer.apple.com. Архивировано 10 июня 2009 г. на Wayback Machine.
  7. ^ «Запись · Причина» . reasonml.github.io . Архивировано 31 марта 2020 года . Проверено 13 апреля 2020 .
  8. ^ "Система структурного типа" , Википедия , 29 марта 2019 г. , получено 13 апреля 2020 г.
  9. ^ "rust-lang / rustc-dev-guide" . GitHub . Проверено 8 апреля 2020 .
  10. ^ "Система типов Дарт" . dart.dev . Проверено 8 апреля 2020 .