Я начал читать все больше и больше статей по языковым исследованиям. Я нахожу это очень интересным и хорошим способом узнать больше о программировании в целом. Тем не менее, как правило , приходит раздел , где я всегда борюсь с (Возьмем, например , части третьей этой ) , так как мне не хватает теоретической подготовки в области компьютерных наук: Тип правил.
Есть ли хорошие книги или онлайн-ресурсы для начала работы в этой области? Википедия невероятно расплывчата и не очень помогает новичку.
Ответы:
В большинстве систем типов правила типов работают вместе, чтобы определить суждения о форме:
Это говорит о том, что в контексте выражение e имеет тип τ . Г - отображение свободных переменных е в их типы.Γ е τ
Γ е
Система типов будет состоять из набора аксиом и правил (формальная система правил вывода , как указывает Рафаэль).
Аксиома имеет форму
Это говорит о том, что суждение выполняется (всегда).Γ ⊢ e : τ
Примером является
который утверждает, что в предположении, что тип переменной равен τ , то выражение x имеет тип τ .Икс τ Икс τ
Правила вывода берут факты, которые уже были определены, и строят из них более крупные факты. Например, правило вывода
говорит, что если у меня есть вывод факта и вывод факта Γ ⊢ e 2 : τ , то я могу получить вывод факта Γ ⊢ e 1 e 2 : τ ′ , В данном случае это правило для набора функций приложения.Γ ⊢ e1: τ→ τ' Γ ⊢ e2: τ Γ ⊢ e1 е2: τ'
Есть два способа прочтения этого правила:
Правила вывода применяются индуктивно на основе синтаксиса рассматриваемого выражения для формирования деривационного дерева. На листьях дерева (вверху) будут аксиомы, а ветви будут формироваться путем применения правил вывода. В самом низу дерева находится выражение, которое вы хотите набрать.
Обе книги очень всеобъемлющие, но они начинаются медленно, закладывая прочную основу.
источник
Существует мило интерактивный онлайн учебник по секвенции исчисления, которые могут помочь построить некоторые интуитивные и почувствовать , как логический вывод работы: Интерактивное учебное пособие по секвенции Исчисление
источник
На этой странице Википедии рекомендуется " Системы типов, Лука Карделли, ACM Computing Surveys ", это двухстраничный опрос, который может помочь вам понять, как читать правила. Во всяком случае, как прочитать правило прекрасно объясняется на этой странице Википедии (или даже лучше в опросе на 2 страницы). Однако, чтобы понять все это, вам нужно понять, что такое система ввода (составленная из нескольких правил), для которой статья в Википедии " Система типов " является хорошим началом (и у вас есть несколько книг в разделе " Ссылки " этого страница, если вы хотите пойти дальше).
источник