Як читати правила набору тексту?


18

Я почав читати все більше і більше мовних досліджень. Я вважаю це дуже цікавим і хорошим способом дізнатися більше про програмування загалом. Однак зазвичай є розділ, де я завжди боюся (візьмемо, наприклад, частину третього цього ), оскільки мені не вистачає теоретичної основи інформатики: Правила типу.

Чи є якісь хороші книги чи Інтернет-ресурси, щоб розпочати роботу в цій галузі? Вікіпедія неймовірно розпливчаста і не дуже допомагає новачкові.


1
Чи читали ви пов’язану статтю про правила виводу ?
Рафаель

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

Відповіді:


25

У більшості систем типів правила типу працюють разом для визначення суджень форми:

Γe:τ

Це говорить про те, що в контексті вираз e має тип τ . Γ - відображення вільних змінних eΓeτ
Γe до їх типів.

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

Аксіома має форму

Γe:τ

Це говорить про те, що рішення Γe:τ виконується (завжди).

Прикладом є

x:τx:τ

який говорить, що за припущенням, що тип змінної дорівнює τ , то вираз x має тип τxτxτ .

Правила висновку беруть факти, які вже були визначені, і будують з них більші факти. Наприклад, правило висновку

Γe1:ττΓe2:τΓe1 e2:τ

говорить, що якщо у мене є виведення факту та виведення факту Γ e 2 : τ , то я можу отримати деривацію факту Γ e 1 e 2 : τ . У цьому випадку це правило для набору функції функції.Γe1:ττΓe2:τΓe1 e2:τ

Існує два способи читання цього правила:

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

Деякі правила висновку також маніпулюють , додаючи до нього нові інгредієнти (перегляд знизу вгору). Ось правило для λ -абстракції:Γλ

Γx:τe:τΓλx.e:ττ

Правила умовиводу застосовуються індуктивно, ґрунтуючись на синтаксисі виразу, що розглядається, для формування дерева деривації. На листках дерева (вгорі) будуть аксіоми, а гілки формуватимуться, застосовуючи правила виводу. У самому дні дерева - вираз, який вам цікаво ввести.

Наприклад, деривація набору тексту виразу єλf.λx.f x

Дві дуже хороші книги для вивчення систем типів:

f:ττ,x:τf:ττf:ττ,x:τx:τf:ττ,x:τf x:τf:ττλx.f x:τλf.λx.f x:τ

Обидві книги дуже вичерпні, але вони починаються повільно, будуючи міцний фундамент.


8

Є симпатичний інтерактивний онлайн-підручник з послідовним обчисленням, який може допомогти побудувати деякі інтуїції та відчути, як працює висновок: Інтерактивний підручник з послідовного обчислення


3
Це дійсно круто.
Дейв Кларк

1
Дивовижно. Мені потрібно знайти кілька тегів вікі, щоб це вкласти.
Рафаель

5

На цій сторінці Вікіпедії рекомендується " Тип систем, Лука Карделлі, обчислювальні дослідження обліку ACM ", це опитування на 2 сторінки, яке допоможе вам зрозуміти, як читати правило. У будь-якому випадку, як прочитати правило, ідеально пояснено на тій сторінці Вікіпедії (а ще краще в опитуванні на 2 сторінки). Однак, щоб зрозуміти все, вам потрібно зрозуміти, що таке система набору тексту (складена з кількох правил), для якої стаття з Вікіпедії " Система типу " є гарним початком (і у вас є кілька книг у розділі " Посилання " цього сторінку, якщо ви хочете піти далі).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.