• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2021/2022

Разработка IDE

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус: Курс по выбору (Программирование и анализ данных)
Направление: 01.04.02. Прикладная математика и информатика
Когда читается: 1-й курс, 3, 4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Преподаватели: Близнец Иван Анатольевич
Прогр. обучения: Программирование и анализ данных
Язык: русский
Кредиты: 4
Контактные часы: 30

Программа дисциплины

Аннотация

Дисциплина "Разработка IDE" призвана познакомить студентов с современным подходом к созданию интегрированных средств разработки. В рамках курса рассматриваются основные модули IDE: лексер, парсер, анализатор кода, локальные и глобальные кеши, навигация по коду, модификация кода и рефакторинги. Помимо теоретического обзора студенты в течение курса будут поэтапно разрабатывать собственное IDE. Курс создан и реализуется при поддержке компании JetBrains. Является дисциплиной по выбору.
Цель освоения дисциплины

Цель освоения дисциплины

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

Планируемые результаты обучения

  • Понимание алгоритмов и структур данных.
  • Умение программировать на языке высокого уровня.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Инструментальные средства разработки. Введение в историю и архитектуру IDE.
  • Структуры данных для работы с текстом. Текстовый редактор и разметка документа.
  • Виртуальная файловая система, понятия модели PSI и проектной модели.
  • Введение в теорию формальных языков.
  • Лексический анализ.
  • Синтаксический анализ, абстрактные синтаксические деревья.
  • Семантический анализ, таблицы символов и разрешение ссылок.
  • Введение в системы типов и вывод типов.
  • Введение в статический анализ.
  • Абстрактная интерпретация, анализ потока управления и анализ потока данных.
  • Межпроцедурный анализ и граф вызовов.
  • Помощь при наборе и автодополнение кода. Поиск и навигация по коду.
  • Модификация абстрактного синтаксического дерева. Генерация кода на основе абстрактного синтаксического дерева. Автоформатирование. Автоматический рефакторинг.
  • Отладчик и отладочные символы, вычисление выражений во время отладки.
  • Инструментирование, профилирование и трассировка.
Элементы контроля

Элементы контроля

  • неблокирующий Проект 1
    Разработка группой студентов небольшого текстового редактора с подсветкой синтаксиса. Выполняется группой в 2-3 студента.
  • неблокирующий Проект 2
    Разработка группой студентов плагина с анализом для JetBrains IDE. Выполняется группой в 2-3 студента.
  • блокирующий Экзамен
Промежуточная аттестация

Промежуточная аттестация

  • 2021/2022 учебный год 4 модуль
    0.4 * Экзамен + 0.3 * Проект 2 + 0.3 * Проект 1
Список литературы

Список литературы

Рекомендуемая основная литература

  • Pierce, B. C. (2002). Types and Programming Languages. Cambridge, Mass: The MIT Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=70966

Рекомендуемая дополнительная литература

  • Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2014). Compilers: Pearson New International Edition : Principles, Techniques, and Tools: Vol. Second edition. Pearson.

Авторы

  • Кузнецов Антон Михайлович