Как читать правила набора текста?


18

Я начал читать все больше и больше статей по языковым исследованиям. Я нахожу это очень интересным и хорошим способом узнать больше о программировании в целом. Тем не менее, как правило , приходит раздел , где я всегда борюсь с (Возьмем, например , части третьей этой ) , так как мне не хватает теоретической подготовки в области компьютерных наук: Тип правил.

Есть ли хорошие книги или онлайн-ресурсы для начала работы в этой области? Википедия невероятно расплывчата и не очень помогает новичку.


1
Вы читали связанную статью о правилах вывода ?
Рафаэль

2
TAPL Бенджамина Пирса действительно хорош.
Жиль "ТАК - перестань быть злым"

Ответы:


25

В большинстве систем типов правила типов работают вместе, чтобы определить суждения о форме:

Γе:τ

Это говорит о том, что в контексте выражение e имеет тип τ . Г - отображение свободных переменных е в их типы.Γеτ
Γе

Система типов будет состоять из набора аксиом и правил (формальная система правил вывода , как указывает Рафаэль).

Аксиома имеет форму

Γе:τ

Это говорит о том, что суждение выполняется (всегда).Γе:τ

Примером является

Икс:τИкс:τ

который утверждает, что в предположении, что тип переменной равен τ , то выражение x имеет тип τ .ИксτИксτ

Правила вывода берут факты, которые уже были определены, и строят из них более крупные факты. Например, правило вывода

Γе1:ττ'Γе2:τΓе1 е2:τ'

говорит, что если у меня есть вывод факта и вывод факта Γ e 2 : τ , то я могу получить вывод факта Γ e 1 e 2 : τ , В данном случае это правило для набора функций приложения.Γе1:ττ'Γе2:τΓе1 е2:τ'

Есть два способа прочтения этого правила:

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

Γλ

ΓИкс:τе:τ'ΓλИкс,е:ττ'

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

λе,λИкс,е Икс

е:ττ',Икс:τе:ττ'е:ττ',Икс:τИкс:τе:ττ',Икс:τе Икс:τ'е:ττ'λИкс,е Икс:τ'λе,λИкс,е Икс:τ'

Обе книги очень всеобъемлющие, но они начинаются медленно, закладывая прочную основу.


8

Существует мило интерактивный онлайн учебник по секвенции исчисления, которые могут помочь построить некоторые интуитивные и почувствовать , как логический вывод работы: Интерактивное учебное пособие по секвенции Исчисление


3
Это действительно круто.
Дейв Кларк

1
Потрясающие. Я должен найти некоторые теги вики, чтобы положить это в.
Рафаэль

5

На этой странице Википедии рекомендуется " Системы типов, Лука Карделли, ACM Computing Surveys ", это двухстраничный опрос, который может помочь вам понять, как читать правила. Во всяком случае, как прочитать правило прекрасно объясняется на этой странице Википедии (или даже лучше в опросе на 2 страницы). Однако, чтобы понять все это, вам нужно понять, что такое система ввода (составленная из нескольких правил), для которой статья в Википедии " Система типов " является хорошим началом (и у вас есть несколько книг в разделе " Ссылки " этого страница, если вы хотите пойти дальше).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.