Александров Александр Евгеньевич – доктор технических наук, профессор кафедры персональных компьютеров и сетей, факультет информатики, Московский государственный университет приборостроения и информатики (МГУПИ).
Адрес: 107996, Москва, ул. Стромынка, 20.
E-mail: femsystem@yandex.ru
Шильманов Владимир Петрович – аспирант кафедры персональных компьютеров и сетей, факультет информатики, Московский государственный университет приборостроения и информатики (МГУПИ).
Адрес: 107996, Москва, ул. Стромынка, 20.
E-mail: femsystem@yandex.ru
В индустрии программирования наметилась устойчивая тенденция к переходу от объектно-ориентированной технологии программирования к новой парадигме, основанной на теории понятий и языко-ориентированных методах программирования. В рамках разработки программного обеспечения (ПО) средствами объектно-ориентированного программирования этот процесс является весьма длительным, а при сопровождении и развитии программного кода все необходимо повторять заново. Альтернативой ему выступает использование предметно-ориентированных языков, выполняющих роль своеобразного интерфейса, связывая высокоуровневые понятия с непосредственной программной реализацией.
Цель исследования заключается в автоматизации генерации кода при формировании компонентной библиотеки на основе семантических описаний, поступающих на вход, т.е. исходя из принципов языково-ориентированных методов программирования.
Рассматриваются два основных подхода, используемых при генерации кода: шаблонная генерация и генерация с помощью преобразователя. Во втором случае при проектировании ПО используется высокоуровневая модель предметной области с применением предметно-ориентированного языка (ПОЯ), такая модель более приближена к предметной области, чем классы и методы. В этом случае код программного приложения становится легким для понимания «предметным» специалистом, без какого-либо участия программиста. В результате на порядки сокращается объем текста приложения. Понятие программных компонентов предполагает многократное их использование, формирование различных программных приложений из блоков, с учетом их многократного использования.
В результате для формирования компонентной библиотеки разработан генератор кода на языке Python с использованием комбинаторной библиотеки PyParsing. Разработанный генератор позволяет создавать программный код алгоритма по предварительно сформированному шаблону описания его входных и выходных данных. Генерация с помощью преобразователя основана на написании программы, которая получает на вход семантическую модель, а на выходе дает исходный текст для целевой языковой среды.