Jump to content

Типизированное лямбда-исчисление

Типизированное , лямбда-исчисление — это типизированный формализм в котором используется лямбда-символ ( ) для обозначения абстракции анонимной функции. В этом контексте типы обычно представляют собой объекты синтаксической природы, которые присваиваются лямбда-термам; точная природа типа зависит от рассматриваемого исчисления (см. виды ниже). С определенной точки зрения типизированные лямбда-исчисления можно рассматривать как усовершенствования нетипизированного лямбда-исчисления , но с другой точки зрения их также можно считать более фундаментальной теорией, а нетипизированное лямбда-исчисление - частным случаем только с одним типом. [1]

Типизированные лямбда-исчисления являются основополагающими языками программирования и основой типизированных функциональных языков программирования, таких как ML и Haskell, а также, косвенно, типизированных императивных языков программирования . Типизированные лямбда-исчисления играют важную роль в разработке систем типов для языков программирования; здесь типизация обычно отражает желаемые свойства программы (например, программа не вызывает нарушения доступа к памяти).

Типизированные лямбда-исчисления тесно связаны с математической логикой и теорией доказательств через изоморфизм Карри-Говарда , и их можно рассматривать как внутренний язык определенных классов категорий . Например, просто типизированное лямбда-исчисление является языком декартовых закрытых категорий (CCC). [2]

Виды типизированных лямбда-исчислений [ править ]

Были изучены различные типизированные лямбда-исчисления. Просто типизированное лямбда-исчисление имеет только один конструктор типа — стрелку. , и его единственными типами являются базовые типы и типы функций. . Система T расширяет просто типизированное лямбда-исчисление за счет натуральных чисел и примитивной рекурсии более высокого порядка; в этой системе все функции, доказуемо рекурсивные в арифметике Пеано определимы . Система F допускает полиморфизм за счет использования универсальной количественной оценки всех типов; с логической точки зрения он может описать все функции, которые являются доказуемо полными в логике второго порядка . Лямбда-исчисления с зависимыми типами — это основа интуиционистской теории типов , исчисления конструкций и логической структуры (LF), чистого лямбда-исчисления с зависимыми типами. Основываясь на работе Берарди по системам чистых типов , Хенк Барендрегт предложил лямбда-куб для систематизации отношений чисто типизированных лямбда-исчислений (включая просто типизированное лямбда-исчисление, систему F, LF и исчисление конструкций). [3]

Некоторые типизированные лямбда-исчисления вводят понятие подтипирования , т.е. если является подтипом , то все члены типа также есть тип . Типизированные лямбда-исчисления с подтипами — это просто типизированные лямбда-исчисления с конъюнктивными типами и системой F <: .

Все системы, упомянутые до сих пор, за исключением нетипизированного лямбда-исчисления, являются строго нормализующими : все вычисления завершаются. Следовательно, они не могут описать все функции , вычислимые по Тьюрингу . [4] Как еще одно следствие, они логически последовательны, т.е. существуют необитаемые типы. Однако существуют типизированные лямбда-исчисления, которые не являются строго нормализующими. Например, зависимо типизированное лямбда-исчисление с типом всех типов (Тип: Тип) не является нормализуемым из-за парадокса Жирара . Эта система также является простейшей системой чистого типа, формализмом, который обобщает лямбда-куб. Системы с явными комбинаторами рекурсии, такие как » Плоткина « Язык программирования для вычислимых функций (PCF), не являются нормализующими, но они не предназначены для интерпретации как логики. Действительно, PCF — это прототип типизированного функционального языка программирования, в котором типы используются для обеспечения правильного поведения программ, но не обязательно для их завершения.

Приложения к языкам программирования [ править ]

В компьютерном программировании подпрограммы (функции, процедуры, методы) строго типизированных языков программирования близко соответствуют типизированным лямбда-выражениям. [5]

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

  • Каппа-исчисление - аналог типизированного лямбда-исчисления, исключающий функции высшего порядка.

Примечания [ править ]

  1. ^ Брандл, Хельмут (27 апреля 2024 г.). «Типизированное лямбда-исчисление / Конструкционное исчисление» (PDF) . Расчет конструкций . Проверено 27 апреля 2024 г.
  2. ^ Ламбек, Дж.; Скотт, П.Дж. (1986), Введение в категориальную логику высшего порядка , издательство Кембриджского университета , ISBN  978-0-521-35653-4 , МР   0856915
  3. ^ Барендрегт, Хенк (1991). «Введение в системы обобщенных типов» . Журнал функционального программирования . 1 (2): 125–154. дои : 10.1017/S0956796800020025 . hdl : 2066/17240 . ISSN   0956-7968 .
  4. ^ поскольку проблема остановки для последнего класса оказалась неразрешимой
  5. ^ «Что нужно знать перед обсуждением систем типов | Овидий [blogs.perl.org]» . blogs.perl.org . Проверено 26 апреля 2024 г.

Дальнейшее чтение [ править ]

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