Загальна мета ПЛТ - зробити інженерію промислового програмного забезпечення (у загальному розумінні) дешевшою (також у загальному розумінні) за рахунок оптимізації найважливішого інструмента (мови програмування) та пов'язаної з цим екосистеми інструментальних засобів.
Деякі причини, чому займається математика:
ПЛ дуже нетривіальні, і незрозуміло, що вони роблять правильно без доказів. Математика дає спрощену модель реальних мов програмування. Ця модель дозволяє нам вивчати реальні мови програмування у значно спрощеній обстановці, видаляючи (сподіваємось) більшість проблем уже на рівні моделі. Реальні мови програмування в даний час математично непереборні. Іншими словами: лямбда-числення - це плодова муха, E.Coli, сферична корова ПЛТ.
У PLT бракує відповідних емпіричних методів, які було б добре / краще мати, тому математика робиться як заміна.
Математика красива і глибока.
Математика дає просту, випробувану методологію дослідження, яка важлива для того, щоб допомогти аспірантам. Як правило, деякі варіанти, наприклад: Досліджують особливості PL XYZ шляхом додавання його до лямбда-числення. Додайте прості типи для XYZ і доведіть надійність типу. Додайте загальну інформацію для XYZ та доведіть надійність типу. Доведіть теорему про параметричність для дженріків XYZ. Додайте залежні типи для XYZ та доведіть надійність типу. Розробіть часткове умовивід для типів, залежних від XYZ. Додайте поступові типи для XYZ та доведіть надійність типу. Додайте контракти на XYZ. Кожен із них - це папір. Ви можете зупинитись, якщо у вашого доктора чи постдоктора вичерпається час. Кожне з перерахованого вище є цікавим і дасть зрозуміти загальну характеристику, параметричність, висновок про тип тощо. Цей конвеєр є чудовимспосіб навігації у складних водах усіх можливих мов програмування. Другий спосіб навчання - це реалізація мов у компіляторі, але це менш простежується для окремої людини.
Чи потрібен ПЛТ - цікаве питання. Більшість працюючих програмістів здається, що це не так. Вони помиляються: більшість мов, розроблених працюючими програмістами без фонового режиму PLT (наприклад, Javascript, PHP), починаються жахливими, і роблять усі помилки, яких теоретики PL довго навчились уникати. Якщо ПЛ, розроблений аматором, потрапляє в основний потік, теоретикам ЛЖ потрібно десятиліття або близько того, щоб виправити очевидні недоліки (наприклад, переобладнати статичну систему набору тексту, див. Типовий сценарій). Дозвольте підсумувати цю ситуацію:
Every successful programming language ends up being ML! Either because
it was designed by a PL theorist as ML from the start, or because a
decade of painful evolution removes all the obvious flaws, leaving ML. ;-)
Убік:
Такий стан справ повністю винен PLT, оскільки, оскільки більшість з них не має досвіду промислового програмування, тож насправді не знаю, які больові відчуття працюють у інженерів-программістів. Зокрема, з соціологічних причин більшість теоретиків з питань ПЛ вважають, що чисте функціональне програмування на таких мовах, як Agda - це рішення всіх проблем, яке не витримує уважного вивчення.