
Сергей Соловьев
Т-Банк
Многие слышали, что система типов TypeScript является Тьюринг-полной. Это значит, что с ее помощью можно реализовать любой конечный алгоритм. Реализация логики в типах – это не просто развлечение, а отличный способ на практике почувствовать возможности и ограничения системы типов, почелленджить свои навыки и узнать полезные приемы для повседневной работы. Type-level программирование не только помогает писать более «умные» и компактные типы, но также развивает алгоритмическое мышление.
В этом докладе мы попробуем строго типизировать eval и конструктор Function так, чтобы результат вычисления был выведен компилятором TypeScript еще до запуска самой программы. То есть реализуем интерпретатор для подмножества JavaScript на уровне типов! Попутно поговорим о Тьюринг-полноте языков, устройстве движков JS и функциональном подходе к программированию.
Т-Банк
chillhouse.space