Jump to content

Тип уточнения

В теории типов тип уточняющий [1] [2] [3] — это тип, наделенный предикатом, который предполагается справедливым для любого элемента уточненного типа. Уточняющие типы могут выражать предварительные условия при использовании в качестве аргументов функции или постусловия при использовании в качестве возвращаемых типов : например, тип функции, которая принимает натуральные числа и возвращает натуральные числа больше 5, может быть записан как . Типы уточнения, таким образом, связаны с поведенческими подтипами .

История [ править ]

Концепция типов уточнения была впервые представлена ​​в книге Фримена и Пфеннинга « Типы уточнения для машинного обучения» в 1991 году . [1] который представляет систему типов для подмножества Standard ML . Система типов «сохраняет разрешимость вывода типа ML», но при этом «позволяет обнаруживать больше ошибок во время компиляции». В последнее время системы уточненных типов были разработаны для таких языков, как Haskell , [4] [5] TypeScript , [6] Ржавчина [7] и Скала .

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

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

  1. Перейти обратно: Перейти обратно: а б Фриман, Т.; Пфеннинг, Ф. (1991). «Типы уточнений для ML» (PDF) . Материалы конференции ACM по проектированию и реализации языков программирования . стр. 268–277. дои : 10.1145/113445.113468 .
  2. ^ Хаяши, С. (1993). «Логика типов уточнения». Труды семинара по типам доказательств и программ . стр. 157–172. CiteSeerX   10.1.1.38.6346 . дои : 10.1007/3-540-58085-9_74 .
  3. ^ Денни, Э. (1998). «Виды уточнения для спецификации». Материалы Международной конференции ИФИП по концепциям и методам программирования . Том. 125. Чепмен и Холл. стр. 148–166. CiteSeerX   10.1.1.22.4988 .
  4. ^ Вазу, Ники. Liquid Haskell: типы уточнений Haskell . 45-й симпозиум ACM SIGPLAN по принципам языков программирования (POPL 2018).
  5. ^ Волков, Никита (2015). «Уточнение типов как библиотека Haskell» .
  6. ^ Панайотис, Векрис; Косман, Бенджамин; Джала, Ранджит (2016). «Типы уточнения для TypeScript». Материалы 37-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . стр. 310–325. arXiv : 1604.02480 . дои : 10.1145/2908080.2908110 .
  7. ^ Леманн, Нико; Геллер, Адам Т.; Вазу, Ники; Джала, Ранджит (6 июня 2023 г.). «Флюсы: жидкости для борьбы с ржавчиной» . Труды ACM по языкам программирования . 7 (PLDI): 169:1533–169:1557. дои : 10.1145/3591283 .


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: da530526d13d2b85ec6002e30c5a437f__1699336380
URL1:https://arc.ask3.ru/arc/aa/da/7f/da530526d13d2b85ec6002e30c5a437f.html
Заголовок, (Title) документа по адресу, URL1:
Refinement type - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)