Языки программирования со статической типизацией было бы крайне неудобно использовать, если бы для них не существовало алгоритмов вывода типов. К сожалению, вывод типов — это благо, которое далеко не всегда имеет место. К счастью, для языков типа Haskell это возможно, хотя и довольно сложно с учётом богатства системы типов. В этом курсе лекций мы начнём с алгоритма вывода типов Хиндли для простого статически типизированного функционального языка, затем расширим и уточним его, получив алгоритм Дамаса — Милнера, а после этого перейдём к рассмотрению фреймворка для вывода типов OutsideIn(X), на основе которого в настоящее время выполняется вывод типов компилятором GHC языка Haskell. Для успешного прохождения курса желательно владение языком программирования Haskell (на базовом уровне).
Дата и время | Занятие | Место | Материалы |
---|---|---|---|
02 марта 17:15–18:45 |
Лекция 1. Вывод типов в простом функциональном языке программирования, Лекция | ПОМИ | слайды, видео |
02 марта 19:00–20:30 |
Лекция 2. Вывод типов в системе Хиндли — Милнера и структурированное представление алгоритмов вывода типов, Лекция | ПОМИ | видео |
03 марта 11:15–12:45 |
Лекция 3. Локальные допущения и вывод типов в Haskell, Лекция | ПОМИ | слайды, видео |
03 марта 13:00–14:30 |
Лекция 4. Алгоритм вывода типов OutsideIn(X), Лекция | ПОМИ | видео |
03 марта 15:30–17:00 |
Лекция 5. Вывод типов с GADT, классами типов и семействами типов в GHC, Лекция | ПОМИ | видео |