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

Бакалаврская программа «Программная инженерия»

Об учебном проекте первокурсников ПИ

Завершена летняя практика студентов 1 курса образовательной программы “Программная инженерия”, которая проходит в форме проектной работы. Студенты могли выбирать темы для изучения и выполнения проектов на факультете или на предприятиях ИТ-индустрии.

Несколько студентов реализовали интересные проекты в области системного программирования, использующих технологию построения компиляторов ANTLR (компилятор компиляторов).

В индустриальной среде часто возникают задачи разработки компилятора или интерпретатора не для нового универсального языка программирования, а для специализированного внутреннего языка некоторой разрабатываемой системы. В качестве классического примера можно указать язык AutoLISP системы AutoCAD, который является диалектом языка LISP. Широкое распространение и возможности автоматизации системы привели к появлению своего рынка и поставщиков программного обеспечения, специализирующихся на расширениях AutoCAD и использующих AutoLISP. В последующем язык AutoLISP стал поддерживаться и в других CAD системах. Примеров подобных языков - аутентичных или диалектов известных языков множество.

Проект симулятора “NinjaPretator”, моделирующий имитацию перемещения агентов-ниндзя на игровом поле, управляемых внутренним языком “NnjScript”, был реализован командой разработчиков - студентов 1 курса ПИ - в составе: Василий Новак, Артём Пичугин и Валерий Проскурин. Каждый агент получает инструкции к действию, написанные на языке NnjScript. Симулятор и интерпретатор были реализованы с помощью современных технологий C# и ANTLR. Василий реализовал движок, графический интерфейс и базовую поддержку переменных. Артём и Валерий реализовали базовые инструменты структурирования кода - циклы и процедуры.

Видеодемонстрация

Проект выложен в Github

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


 

Видеодемонстрация

Github

 Идею интересного программного инструмента для автоматической генерации файлов подсветки редактора Vim по описанию грамматики языка с помощью технологии ANTLR предложил и довел до реализации Даниил Закируллин. Редактор Vim широко распространен в среде профессиональных разработчиков, так как позволяет значительно повысить эффективность основного процесса создания программного продукта - написание текста программы. Проект имеет практическую ценность для разработчиков, часто использующих технологию ANTLR.

Также можно отметить транслятор, реализованный Ильей Зуевым. Транслятор переводит подмножество языка C++ в код для кроссплатформенного ассемблера NASM и выполняет оптимизацию распределения переменных по регистрам процессора с помощью метода du-сетей (definition-use chain).

Github

Проекты были реализованы в рамках темы “Построение компиляторов” предложенной старшим преподавателем Департамента программной инженерии Дворянским Леонидом Владимировичем.  

«Студенты инициативно предложили собственные интересные проекты или реализовали предложенные проекты повышенной трудности. Реализованные проекты позволили студентам попробовать свои силы в сложной и интересной области системного программирования. Кроме того, проекты являются потенциально практически полезными. Например, инструмент генерации подсветки Vim после технической доработки планируется выложить на vim.org или на antlr.org.»

Дворянский Леонид Владимирович
Старший преподаватель Департамента программной инженерии