@ARTICLE{26583204_71751882_2012, author = {А. Е. Александров and В. П. Шильманов}, keywords = {, языко-ориентированное программирование, программный компонент, библиотека программных компонентовгенерация кода}, title = {Инструментальные средства разработки и сопровождения программного обеспечения на основе генерации кода}, journal = {Бизнес-информатика}, year = {2012}, number = {4(22)}, pages = {10-17}, url = {https://bijournal.hse.ru/2012--4(22)/71751882.html}, publisher = {}, abstract = {Александров Александр Евгеньевич - доктор технических наук, профессор кафедры персональных компьютеров и сетей, факультет информатики, Московский государственный университет приборостроения и информатики (МГУПИ).Адрес: 107996, Москва, ул. Стромынка, 20.  E-mail: femsystem@yandex.ruШильманов Владимир Петрович - аспирант кафедры персональных компьютеров и сетей, факультет информатики, Московский государственный университет приборостроения и информатики (МГУПИ).Адрес: 107996, Москва, ул. Стромынка, 20.  E-mail: femsystem@yandex.ruВ индустрии программирования наметилась устойчивая тенденция к переходу от объектно-ориентированной технологии программирования к новой парадигме, основанной на теории понятий и языко-ориентированных методах программирования. В рамках разработки программного обеспечения (ПО) средствами объектно-ориентированного программирования этот процесс  является весьма длительным, а при сопровождении и развитии программного кода все необходимо повторять заново. Альтернативой ему выступает использование предметно-ориентированных языков,  выполняющих  роль своеобразного интерфейса, связывая высокоуровневые понятия с непосредственной программной реализацией.Цель исследования заключается в автоматизации генерации кода при формировании компонентной библиотеки на основе семантических описаний, поступающих на вход, т.е. исходя из принципов языково-ориентированных методов программирования. Рассматриваются два основных подхода, используемых при генерации кода: шаблонная генерация и генерация с помощью преобразователя. Во втором случае при проектировании ПО используется высокоуровневая модель предметной области с применением предметно-ориентированного языка (ПОЯ), такая модель более приближена к предметной области, чем классы и методы. В этом случае код программного приложения становится легким для понимания «предметным» специалистом, без какого-либо участия программиста. В результате на порядки сокращается  объем текста приложения. Понятие программных компонентов предполагает многократное их использование, формирование  различных программных приложений из блоков, с учетом их многократного использования.В результате для формирования компонентной библиотеки разработан генератор кода на языке Python с использованием комбинаторной библиотеки PyParsing. Разработанный генератор позволяет создавать программный код алгоритма по предварительно сформированному шаблону описания его входных и выходных данных. Генерация с помощью преобразователя основана на написании программы, которая получает на вход семантическую модель, а на выходе дает исходный текст для целевой языковой среды.}, annote = {Александров Александр Евгеньевич - доктор технических наук, профессор кафедры персональных компьютеров и сетей, факультет информатики, Московский государственный университет приборостроения и информатики (МГУПИ).Адрес: 107996, Москва, ул. Стромынка, 20.  E-mail: femsystem@yandex.ruШильманов Владимир Петрович - аспирант кафедры персональных компьютеров и сетей, факультет информатики, Московский государственный университет приборостроения и информатики (МГУПИ).Адрес: 107996, Москва, ул. Стромынка, 20.  E-mail: femsystem@yandex.ruВ индустрии программирования наметилась устойчивая тенденция к переходу от объектно-ориентированной технологии программирования к новой парадигме, основанной на теории понятий и языко-ориентированных методах программирования. В рамках разработки программного обеспечения (ПО) средствами объектно-ориентированного программирования этот процесс  является весьма длительным, а при сопровождении и развитии программного кода все необходимо повторять заново. Альтернативой ему выступает использование предметно-ориентированных языков,  выполняющих  роль своеобразного интерфейса, связывая высокоуровневые понятия с непосредственной программной реализацией.Цель исследования заключается в автоматизации генерации кода при формировании компонентной библиотеки на основе семантических описаний, поступающих на вход, т.е. исходя из принципов языково-ориентированных методов программирования. Рассматриваются два основных подхода, используемых при генерации кода: шаблонная генерация и генерация с помощью преобразователя. Во втором случае при проектировании ПО используется высокоуровневая модель предметной области с применением предметно-ориентированного языка (ПОЯ), такая модель более приближена к предметной области, чем классы и методы. В этом случае код программного приложения становится легким для понимания «предметным» специалистом, без какого-либо участия программиста. В результате на порядки сокращается  объем текста приложения. Понятие программных компонентов предполагает многократное их использование, формирование  различных программных приложений из блоков, с учетом их многократного использования.В результате для формирования компонентной библиотеки разработан генератор кода на языке Python с использованием комбинаторной библиотеки PyParsing. Разработанный генератор позволяет создавать программный код алгоритма по предварительно сформированному шаблону описания его входных и выходных данных. Генерация с помощью преобразователя основана на написании программы, которая получает на вход семантическую модель, а на выходе дает исходный текст для целевой языковой среды.} }