МЕТОД ОПИСАНИЯ ПРОБЛЕМЫ ДЛЯ ПОЛУЧЕНИЯ КОДА ПРОГРАММЫ

1. Способ получения кода программы для решения задач по безопасности и администрированию сервера путем представления пользователем описания проблемы без указания алгоритма решения, которое используется компьютером для составления алгоритма решения указанной проблемы и формирования алгоритма программы с последующим получением кода программы, где способ предусматривает использование компьютера и включает следующие стадии:
1) представление пользователем стандартизованного описания проблемы на метаязыке с целью получения кода программы, где указанное описание проблемы включает взаимосвязанные элементы, представляющие собой операторы, атрибуты, объекты, действия, переменные, массивы и, необязательно, параметры;
2) анализ описания, представленного на предыдущей стадии, путем распознавания указанных элементов описания и синтаксических связей между ними с выявлением ошибок синтаксиса;
3) на основе анализа описания, проведенного на предыдущей стадии, получение кода программы из многократно опробованных программных элементов путем выполнения следующего:
а) при наличии всех необходимых примитивов в банке примитивов путем генерации кода на языке высокого уровня из комбинации примитивов;
б) в случае отсутствия необходимых примитивов формирование на основе первоначального описания проблемы набора ключевых слов для выбора единственной походящей программы в банке готовых программ с получением кода программы на языке высокого уровня.
2. Способ по п. 1, отличающийся тем, что указанные в описании проблемы операторы характеризуют этапы, которые следует выполнить; атрибуты представляют собой уточнения для операторов, определяют характер операторов и уточняют их значение; объекты предназначены для передачи информации компьютеру, над какими именно входными данными следует выполнить соответствующие действия; действия содержат информацию о конечном результате, описывают, что в итоге должна делать программа; переменные и массивы используются для указания входных и выходных данных; параметры являются набором ограничений и/или требований к выполняемым действиям, которые могут использоваться в качестве зависимого слова к объекту, либо как самостоятельное дополнение к описанию.
3. Способ по п. 1, отличающийся тем, что примитив представляет собой программный модуль, имеющий одну и только одну функцию; банк примитивов представляет собой базу данных, содержащую таблицы с примитивами, их описанием и наборами ключевых слов, описывающих каждый примитив; банк готовых программ представляет собой базу данных, содержащую таблицы с готовыми программами и их описанием.
4. Способ по п. 1, отличающийся тем, что на стадии 3 используются специально созданные или имеющиеся банки с готовыми программами или примитивами.
5. Способ по п. 1, отличающийся тем, что при описании графических объектов используется их объектная структура, в том числе MPEG-4, MPEG-7, alfa-masks, что позволяет программно манипулировать этими объектами, в частности, при решении задач виртуальной или дополненной реальности.
6. Способ по п. 1, отличающийся тем, что при генерации кода программы на стадии 3(a) привлекается банк примитивов, имена которых могут использоваться при описании проблемы, при этом функциональность примитивов может быть программно модифицирована за счет системной переменной, значение которой может изменять функцию оператора.
7. Способ по п. 1, отличающийся тем, что для получения кода программы на стадии 3 (б) при поиске программы в банке готовых программ используются слова и/или комбинации слов, составленные на основе описания проблемы и наиболее точно описывающие проблему.
8. Способ по любому из пп. 1-7, отличающийся тем, что, если в результате осуществления стадии 3(б) готовые программы не будут обнаружены в банке готовых программ, то об этом сообщается пользователю с предложением уточнить описание проблемы с последующим повтором стадий (1)-(3).
9. Способ по п. 8, отличающийся тем, что, уточнение описания проблемы проводят разделением его на несколько частей для поиска примитивов, программ, дифференциально решающих проблему, указанную в описании, с последующей комбинацией примитивов и/или программ для генерации кода программы на языке высокого уровня.