Jump to content

Программирование вычислимых функций

В информатике представленный Программирование Вычислимых Функций (PCF) — это типизированный функциональный язык, Гордоном Плоткиным в 1977 году. [1] основано на ранее неопубликованном материале Даны Скотт . [примечание 1] Его можно рассматривать как расширенную версию типизированного лямбда-исчисления или упрощенную версию современных типизированных функциональных языков, таких как ML или Haskell .

модель Полностью абстрактная PCF была впервые предложена Робином Милнером . [2] Однако, поскольку модель Милнера по существу была основана на синтаксисе PCF, она была сочтена менее чем удовлетворительной. [3] Первые две полностью абстрактные модели, не использующие синтаксис, были сформулированы в 1990-х годах. Эти модели основаны на игровой семантике. [4] [5] и логические отношения Крипке . [6] Какое-то время считалось, что ни одна из этих моделей не является полностью удовлетворительной, поскольку они не обладают эффектным презентабельным видом. Однако Ральф Лоудер продемонстрировал, что эффективно представимая полностью абстрактная модель не может существовать, поскольку вопрос эквивалентности программ в конечном фрагменте PCF неразрешим. [7]

Синтаксис

[ редактировать ]

Типы как ПКФ индуктивно определяются

  • нат - это тип
  • Для типов σ и τ существует тип σ τ

Контекст — это список пар x : σ , где x — имя переменной, а σ — тип, так что ни одно имя переменной не дублируется. Затем обычным способом определяются суждения о типизации терминов в контексте для следующих синтаксических конструкций:

  • Переменные (если x : σ является частью контекста Γ , то Γ x : σ )
  • Применение (термина типа σ τ к терму типа σ )
  • λ-абстракция
  • Комбинатор неподвижной точки Y (создание термов типа σ из термов типа σ σ )
  • Операции преемника ( succ ) и предшественника ( pred ) над nat и константой 0.
  • Условное if с правилом типизации:
( nat s здесь будет интерпретироваться как логические значения с таким соглашением, как ноль, обозначающий истину, и любое другое число, обозначающее ложь)

Семантика

[ редактировать ]

Денотационная семантика

[ редактировать ]

Относительно простой семантикой языка является модель Скотта . В этой модели

  • Типы интерпретируются как определенные домены .
    • (натуральные числа с присоединенным нижним элементом, с плоским порядком)
    • интерпретируется как область определения непрерывных по Скотту функций из к , с поточечным упорядочением.
  • Контекст интерпретируется как произведение
  • Термины в контексте интерпретируются как непрерывные функции
    • Переменные термины интерпретируются как прогнозы.
    • Абстракция и применение лямбда интерпретируются с использованием декартовой замкнутой структуры категории областей и непрерывных функций.
    • Y интерпретируется путем взятия наименее фиксированной точки аргумента

Эта модель не является полностью абстрактной для PCF; но он полностью абстрактен для языка, полученного добавлением параллельного оператора или к PCF. [4] : 293 

Примечания

[ редактировать ]
  1. ^ «PCF — это язык программирования для вычислимых функций, основанный на LCF, логике вычислимых функций Скотта». [1] Программирование вычислимых функций используется ( Mitchell 1996 ). Его также называют программированием с помощью вычислимых функций или языком программирования для вычислимых функций .
  1. ^ Перейти обратно: а б Плоткин, Гордон Д. (1977). «LCF рассматривается как язык программирования» (PDF) . Теоретическая информатика . 5 (3): 223–255. дои : 10.1016/0304-3975(77)90044-5 .
  2. ^ Милнер, Робин (1977). «Полностью абстрактные модели типизированных λ-исчислений» (PDF) . Теоретическая информатика . 4 : 1–22. дои : 10.1016/0304-3975(77)90053-6 . hdl : 20.500.11820/731c88c6-cdb1-4ea0-945e-f39d85de11f1 .
  3. ^ Онг, К.-ХЛ (1995). «Соответствие между операционной и денотационной семантикой: проблема полной абстракции для PCF» . В Абрамский С.; Габбай, Д.; Майбау, TSE (ред.). Справочник по логике в информатике . Издательство Оксфордского университета. стр. 269–356. Архивировано из оригинала 7 января 2006 г. Проверено 19 января 2006 г.
  4. ^ Перейти обратно: а б Хайланд, JME и Онг, C.-HL (2000). «О полной абстракции для PCF» . Информация и вычисления . 163 (2): 285–408. дои : 10.1006/inco.2000.2917 .
  5. ^ Абрамский С., Джагадисан Р. и Малакария П. (2000). «Полная абстракция для PCF» . Информация и вычисления . 163 (2): 409–470. дои : 10.1006/inco.2000.2930 . {{cite journal}}: CS1 maint: несколько имен: список авторов ( ссылка )
  6. ^ О'Хирн, П.В. и Рике, Дж.Г. (1995). «Логические отношения Крипке и ПКФ» . Информация и вычисления . 120 (1): 107–116. дои : 10.1006/inco.1995.1103 .
  7. ^ Лоадер, Р. (2001). «Финитарные ПКФ неразрешимы» . Теоретическая информатика . 266 (1–2): 341–364. дои : 10.1016/S0304-3975(00)00194-8 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8458e5973d70d47200f90880f84d954d__1675054800
URL1:https://arc.ask3.ru/arc/aa/84/4d/8458e5973d70d47200f90880f84d954d.html
Заголовок, (Title) документа по адресу, URL1:
Programming Computable Functions - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)