• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Контакты

Адрес: 109028, г. Москва, Покровский бульвар, д. 11

Телефон: +7(495) 772-95-90 *28240

Руководство
Научный руководитель направления “Программная инженерия" Аветисян Арутюн Ишханович
Руководитель департамента Лебедев Сергей Аркадьевич
Заместитель руководителя департамента Максименкова Ольга Вениаминовна
Книга
Computer Networks

Rodriges Zalipynis R. A.

St. Petersburg: Naukoemkie Technologii, 2024.

Глава в книге
Game Development Education: Approaches for Teaching Software Engineering Students

Maksimenkova O. V., Lebedev S., Pozdnyakov D.

In bk.: Futureproofing Engineering Education for Global Responsibility: Proceedings of the 27th International Conference on Interactive Collaborative Learning (ICL2024), Volume 4. Springer, 2025. P. 116-125.

Препринт
Approach to Designing CV Systems for Medical Applications: Data, Architecture and AI
В печати

Ryabtsev D., Vasilyev Boris, Shershakov S.

Computer Science ::Computer Vision and Pattern Recognition. 2501.14689. arXiv, 2025

Разработка IDE

2021/2022
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 1, 2 модуль

Преподаватель

Васильев Андрей Дмитриевич

Васильев Андрей Дмитриевич

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

Аннотация

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

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

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

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

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

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

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

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

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

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

  • 2021/2022 учебный год 2 модуль
    Результирующая оценка вычисляется по формуле: О_результирующая = min(0,4*О_экзамен + 0,4*О_проект1 + 0,4*О_проект2; 10)
Список литературы

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

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

  • 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.