• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Специализация: теория языков программирования

Илья Кайсин, выпускник программы «Прикладная математика и информатика» 2019 года, на втором курсе обучения выбрал для себя специализацию «Теория языков программирования». Сейчас Илья работает в лаборатории языковых инструментов JetBrains. В чем преимущества теории языков программирования и как сотрудничество с  компанией JetBrains позволяет расширить возможности студентов по изучению разных направлений этой области — читайте в нашем материале.

Специализация: теория языков программирования

© iStock

Илья Кайсин, выпускник программы «Прикладная математика и информатика» 2019 года, студент магистерской программы «Программирование и анализ данных»

Заниматься исследованиями в области семантики языков программирования, а именно слабыми моделями памяти, я начал еще в Питерской Вышке и продолжил в лаборатории JetBrains. 

Теория языков программирования интересна мне по нескольким причинам. Во-первых, мне близка математика, которая в ней применяется — в основном это алгебра и дискретная математика, в то время как в машинном обучении больше матанализа и статистики. Во-вторых, наши исследования используются разработчиками языков, компиляторов и процессоров и помогают сделать компьютеры быстрее и безопаснее. В-третьих, теоремы и доказательства в этой области пишутся не на бумаге, а на компьютере, например, в COQ, и система верификации автоматически проверяет доказательства на правильность. 

В программе обучения на специализации «Теория языков программирования» мне понравилось разнообразие курсов и свобода в их выборе. Питерская Вышка тесно сотрудничает с разными командами и лабораториями JetBrains. Благодаря этому в ходе обучения я попробовал себя в нескольких областях теории языков программирования и выбрал ту, которая мне понравилась больше. Многие узкоспециализированные курсы были для меня практически индивидуальными, что помогло максимально глубоко освоить программу. 

Один из моих последних проектов – формализация файловой системы ext4. Этот проект я начал на стажировке в Институте Макса Планка в Германии и продолжаю в рамках магистерской дипломной работы. Мы придумали математическую модель ext4 и реализовали на ее основе Model Checker, что позволило обнаружить баги в текстовых редакторах vim и Emacs. Статья об этой работе была опубликована на конференции POPL (A*). 

Я рассматриваю несколько вариантов развития моей карьеры. Первый - продолжу исследования в области языков программирования в аспирантуре, второй - буду заниматься исследованиями в компании или, может быть, запущу свой научный стартап. 

«Теория языков программирования» – одна из пяти специализаций, которые выбирают студенты программы “Прикладная математика и информатика” после второго курса. 

В рамках специализации студенты изучают семантику языков программирования, метавычисления, анализ программ, программирование с зависимыми типами,  логическое и реляционное программирование, компиляторы, альтернативные языки программирования для JVM, типы в языках программирования.

Более подробно с описанием курсов можно ознакомиться на сайте программы «Прикладная математика и информатика».