name: Устойчивая алгоритмическая привязка к коду программы
keyword_list: островные грамматики легковесный парсинг оценка похожести кода разработка программного обеспечения привязка к коду разметка кода
abstract: Объект: Структурированный текст, в частности код на языке программирования.
  Цель: Создание метода устойчивой алгоритмической привязки к коду на языке программирования и последующая разработка инструмента разметки кода на основе данного метода.
  Методы исследования: Методы теории алгоритмов, теории формальных языков и грамматик, теории информации, теории множеств, теории сложности алгоритмов.
  Результаты: Введены понятия упрощённой LL(1) и LR(1) грамматики, описаны методы LL(1) и LR(1) синтаксического анализа на основе упрощённых грамматик; для случая LL(1) доказано, что парсер, сгенерированный по упрощённой грамматике, разбирает все правильные программы, порождённые «полной» грамматикой. Реализован генератор легковесных парсеров LanD со встроенным языком описания упрощённых грамматик, экспериментально подтверждена применимость генерируемых парсеров для анализа промышленных программных проектов. Предложены модели контекстов и алгоритмы для устойчивой привязки к изменяющемуся коду; экспериментально подтверждено сохранение привязки в отредактированных программах. Предложен метод встраивания узлов, соответствующих многострочным фрагментам кода программы, в абстрактное синтаксическое дерево (АСД) программы, доказано сохранение корректности АСД. Реализована панель разметки кода, интегрируемая в различные интерактивные среды разработки.
  Внедрение: ООО «Кассир-софт», ООО «Чек-онлайн», ФГАНУ НИИ «Спецвузавтоматика», ИП Юрушкин Михаил Викторович.
  Область применения: Результаты решения задачи легковесного парсинга могут быть использованы для построения других алгоритмов легковесного парсинга с доказанной корректностью. Результаты решения задачи устойчивой привязки могут быть использованы для построения более специализированных моделей и алгоритмов, в том числе учитывающих информацию об отношениях между элементами функциональностей и о сценарии редактирования кода. Генератор легковесных парсеров LanD позволяет создавать легковесные парсеры для реверс-инжиниринга, обработки вставок кода на другом языке, разбора незавершённого кода и кода с ошибками, разметки кода. Инструмент разметки кода позволяет осуществить долгосрочное документирование кода, обмен информацией в команде, работающей над одной задачей, выдачу заданий, связанных с модификацией кода или добавлением кода в существующие места программы. В процессе обучения программированию инструмент может использоваться для выдачи заданий и последующей их проверки.
chairman_dissertation_council.name: Арутюн
chairman_dissertation_council.surname: Аветисян
chairman_dissertation_council.patronymic: Ишханович
chairman_dissertation_council.position: Директор
chairman_dissertation_council.degree: Доктор физико-математических наук
chairman_dissertation_council.rank: Академик
chairman_dissertation_council.wos_research_id: E-6121-2017
chairman_dissertation_council.scopus_author_id: 56274803200
chairman_dissertation_council.territory: РОССИЯ
organization_supervisor.name: Арутюн
organization_supervisor.surname: Аветисян
organization_supervisor.patronymic: Ишханович
organization_supervisor.position: Директор
organization_supervisor.territory: РОССИЯ
rubrics.code: 50.41.25
rubrics.name: Прикладное программное обеспечение
rubrics.code: 50.05.19
rubrics.name: Теоретические основы прикладного программного обеспечения
rubrics.code: 50.05.09
rubrics.name: Языки программирования
oecds.code: 01.02.ET
oecds.name: COMPUTER SCIENCE, INFORMATION SYSTEMS
speciality_codes.name: Математическое и программное обеспечение вычислительных систем, комплексов и компьютерных сетей
speciality_codes.code: 2.3.5.
supervisors.fio: Михалкович С.С.
supervisors.scientific_degree: Кандидат физико-математических наук
supervisors.speciality_code: Дифференциальные уравнения, динамические системы и оптимальное управление
supervisors.responsible_type: Научный руководитель
opponents.fio: Легалов А.И.
opponents.scientific_degree: Доктор технических наук
opponents.speciality_code: Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
opponents.responsible_type: Оппонент
opponents.fio: Зуев Е.А.
opponents.scientific_degree: Кандидат физико-математических наук
opponents.speciality_code: Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
opponents.responsible_type: Оппонент
protection_organization.short_name: ИСП РАН
protection_organization.name: Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук
protection_organization.ogrn: 1037700067327
protection_organization.organization_type: Организация
protection_organization.okogu: Министерство науки и высшего образования Российской Федерации
protection_organization.okopf: Федеральные государственные бюджетные учреждения
author_organization.name: ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ"
author_organization.ogrn: 1026103165241
author_organization.supervisor_name: ИННА
author_organization.supervisor_surname: ШЕВЧЕНКО
author_organization.supervisor_patronymic: КОНСТАНТИНОВНА
author_organization.organization_type: Организация
author_organization.okogu: Министерство науки и высшего образования Российской Федерации
author_organization.okopf: Федеральные государственные автономные учреждения