[HolyJS — конференция для JavaScript‑разработчиков] Сергей Соловьев — Типизируем eval и new Function: JavaScript-интерпретатор на типах TypeScript
Подробнее о конференции HolyJS: https://jrg.su/EM4wwV — — Скачать презентацию с сайта HolyJS — https://jrg.su/wtVDyk Многие слышали, что система типов TypeScript является Тьюринг-полной. Это значит, что с ее помощью можно реализовать любой конечный алгоритм. Реализация логики в типах – это не просто развлечение, а отличный способ на практике почувствовать возможности и ограничения системы типов, почелленджить свои навыки и узнать полезные приемы для повседневной работы. Type-level программирование не только помогает писать более «умные» и компактные типы, но также развивает алгоритмическое мышление. В этом докладе мы попробовали строго типизировать eval и конструктор Function так, чтобы результат вычисления был выведен компилятором TypeScript еще до запуска самой программы. То есть реализовали интерпретатор для подмножества JavaScript на уровне типов! Попутно поговорили о Тьюринг-полноте языков, устройстве движков JS и функциональном подходе к программированию.