ГЕНЕРА́ЦИИ ПРОГРА́ММА
-
Рубрика: Технологии и техника
-
Скопировать библиографическую ссылку:
ГЕНЕРА́ЦИИ ПРОГРА́ММА, программное средство, выполняющее преобразование или формирование данных. Г. п. (или генератор) может быть независимой самодостаточной программой или встроенной компонентой (реализованной в виде процедуры или функции) прикладной или системной программы. Г. п. делят на генераторы-преобразователи и генераторы-формирователи. К генераторам-преобразователям относятся генераторы кода в компиляторах, SQL-запросов для баз данных, XML-документов в системах обмена сообщениями, а также разл. виды макрогенераторов (макропроцессоров), а к генераторам-формирователям – генераторы тестов, отчётов, программ лексич. и синтаксич. разбора, случайных чисел и др.
Программа генерации кода – неотъемлемая часть всех компиляторов с языков программирования (см. Компилятор). Она работает на завершающей стадии компиляции (обычно после проведения процедур машинно-независимой оптимизации) и формирует объектную программу (напр., в виде перемещаемого объектного модуля, программы с абсолютными адресами, текста на языке ассемблера) либо текст на языке программирования, отличающегося от входного языка компилятора.
Генератор SQL-запросов в системах управления базами данных (СУБД) представляет собой транслятор, который осуществляет перевод заданий с языка (вида), удобного для пользователя, в последовательность запросов на языке SQL (Structured Query Language – Язык структурированных запросов), который является стандартным языком наиболее распространённых реляционных СУБД.
Генератор XML-документов используется в системах обмена сообщениями, построенных на стандартах, соответствующих концепции сетевых служб. Указанные стандарты требуют использования языка XML (Extensible Markup Language – Расширенный язык разметки) в качестве базового языка всех сообщений, распространяемых между абонентами вычислит. сети.
Процесс макрогенерации текстов состоит из ввода макроопределений и обработки макровызовов. Макрогенератору задаётся исходный текст, в котором есть подлежащие замене последовательности символов (макровызовы), и с помощью макроопределений указывается, чем они должны быть заменены. В результате работы макропроцессора получается текст, в котором выполнены необходимые замены, т. е. сделаны макроподстановки. Иногда макрогенератор встраивается в компилятор (напр., языки PL/1, C, C++).
Генератор тестов или тестовых последовательностей анализирует формальное описание объекта (языка программирования, программы, системы управления) и формирует необходимое число тестовых примеров, обладающих заданными характеристиками по уровню покрытия описания (напр., по числу заложенных функций, по числу ветвей потока управления). Сформированные тесты используются в дальнейшем для проверки соответствия исследуемого объекта его формальному описанию. Результаты тестов являются одним из критериев оценки качества изготовленного программного обеспечения (см. Верификация в информатике).
Генератор отчётов позволяет подготовить необходимые пользователю отчётные формы произвольной структуры, включающие таблицы, графики, текстовую информацию, иллюстрации.
Генератор программ лексич. и синтаксич. разбора представляет собой программу, позволяющую по заданному формальному описанию (в виде наборов регулярных выражений или грамматич. правил) некоторого языка программирования автоматически строить программы, производящие соответствующий разбор предложений этого языка. Генерируемая программа разбора состоит из набора процедур, работающих с информацией, размещённой в строящихся генератором таблицах. Сформированные процедуры обычно являются заготовками программ, которые после ручного редактирования могут использоваться при создании компиляторов с языков программирования.
Использование случайных чисел связано с потребностью случайного выбора в математич. статистике и теории игр. Получение действительно случайных чисел – очень непростая задача, поэтому б. ч. расчётов на ЭВМ производится с использованием т. н. псевдослучайных чисел. Генератор псевдослучайных чисел – программа, генерирующая последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению. Данные программы применяются при решении задач математического моделирования, кодирования, криптографии (напр., генератор ключей или паролей в программных системах обеспечения безопасности обработки и передачи данных) и др.