City: Saint Petersburg Novosibirsk Kazan Language: Русский English

Technology of IDE support construction for programming languages


Построение компилятора для языка программирования является сложной и трудоемкой задачей. Результатом работы компилятора является исполняемый код на целевой платформе, предупреждения и сообщения об ошибках. При попытках использовать компилятор для реализации расширенной функциональности IDE возникают дополнительные требования к функциональности компилятора. Эти требования связаны с необходимостью обеспечить мгновенный отклик на действия пользователя при изменяющемся исходном коде программы.

Будет рассказано про алгоритмы и структуры данных, которые используются в IDE для реализации основных функций компилятора: синтаксический анализ, разрешение ссылок, семантические анализы. Также будут рассмотрены основные подходы к реализации функциональности, присущей только IDE: автодополнение, поиск использований и т.д.

Краткое содержание:

  • Инкрементальный лексический анализ
  • Инкрементальный синтаксический анализ
  • Индексирование файлов
  • Разрешение ссылок
  • Поиск использований
  • Автодополнение
  • Поддержка генеративных и вложенных языков
  • Реализация простых рефакторингов, разрешение конфликтов
  • Инкрементальный анализ кода
  • Слабо типизированные языки программирования
  • Алгоритмы анализа потока данных
  • Примитивы синхронизации

Course Offerings

Semester Branch
autumn 2014 Kazan