Специализация: теория языков программирования
Илья Кайсин, выпускник программы «Прикладная математика и информатика» 2019 года, на втором курсе обучения выбрал для себя специализацию «Теория языков программирования». Сейчас Илья работает в лаборатории языковых инструментов JetBrains. В чем преимущества теории языков программирования и как сотрудничество с компанией JetBrains позволяет расширить возможности студентов по изучению разных направлений этой области — читайте в нашем материале.
Илья Кайсин, выпускник программы «Прикладная математика и информатика» 2019 года, студент магистерской программы «Программирование и анализ данных»
Заниматься исследованиями в области семантики языков программирования, а именно слабыми моделями памяти, я начал еще в Питерской Вышке и продолжил в лаборатории JetBrains.
Теория языков программирования интересна мне по нескольким причинам. Во-первых, мне близка математика, которая в ней применяется — в основном это алгебра и дискретная математика, в то время как в машинном обучении больше матанализа и статистики. Во-вторых, наши исследования используются разработчиками языков, компиляторов и процессоров и помогают сделать компьютеры быстрее и безопаснее. В-третьих, теоремы и доказательства в этой области пишутся не на бумаге, а на компьютере, например, в COQ, и система верификации автоматически проверяет доказательства на правильность.
В программе обучения на специализации «Теория языков программирования» мне понравилось разнообразие курсов и свобода в их выборе. Питерская Вышка тесно сотрудничает с разными командами и лабораториями JetBrains. Благодаря этому в ходе обучения я попробовал себя в нескольких областях теории языков программирования и выбрал ту, которая мне понравилась больше. Многие узкоспециализированные курсы были для меня практически индивидуальными, что помогло максимально глубоко освоить программу.
Один из моих последних проектов – формализация файловой системы ext4. Этот проект я начал на стажировке в Институте Макса Планка в Германии и продолжаю в рамках магистерской дипломной работы. Мы придумали математическую модель ext4 и реализовали на ее основе Model Checker, что позволило обнаружить баги в текстовых редакторах vim и Emacs. Статья об этой работе была опубликована на конференции POPL (A*).
Я рассматриваю несколько вариантов развития моей карьеры. Первый - продолжу исследования в области языков программирования в аспирантуре, второй - буду заниматься исследованиями в компании или, может быть, запущу свой научный стартап.
«Теория языков программирования» – одна из пяти специализаций, которые выбирают студенты программы “Прикладная математика и информатика” после второго курса.
В рамках специализации студенты изучают семантику языков программирования, метавычисления, анализ программ, программирование с зависимыми типами, логическое и реляционное программирование, компиляторы, альтернативные языки программирования для JVM, типы в языках программирования.
Более подробно с описанием курсов можно ознакомиться на сайте программы «Прикладная математика и информатика».