Современные методы метапрограммирования и их распределенные системы технологии разработки перспективы

Расчеты показали, что ветродизельные электростанции (ВДЭС) эффективны во всех регионах мира, причем в районах со среднегодовыми скоростями ветра более ó м/с они эффективны во всех сценариях развития энергетики, при ужесточении экологических ограничений ВДЭС эффективны в районах с меньшими значениями среднегодовых скоростей ветра (V=5 м/с при умеренных и жестких экологических ограничениях и V=4 м/с при жестких ограничениях), Системы солнечного теплоснабжения эффективны в регионах с высоким среднегодовым приходом солнечной радиации (Африка, Ближний Восток, Латинская Америка, Юго-Восточная Азия) при Н> 1700-2000 кВт-ч/м2, при жестких ограничениях они могут быть эффективны при Н > 1400 кВт-ч/м2,

Выводы, Разработан комплекс моделей (REM, GEM + MACRO), который позволяет исследовать возможные масштабы внедрения НВИЭ в системах децентрализованного энергоснабжения в первой половине 21-го века. Проведены расчеты на этом комплексе, позволяющие дополнить и уточнить ранее полученные результаты расчетов на модели GEM в части перспектив использования возобновляемых источников энергии.

Библиографический список

1, Марченко О,В., Соломин С,В. Анализ области экономической эффективности ветродизельных электростанций II Промышленная энергетика, - 1999, - № 2, - С, 49-53.

2, Марченко О,В,, Соломин С,В, Оценка экономической и экологической эффективности солнечного теплоснабжения в России II Теплоэнергетика. - 2001, - № 11, - С, 46-49,

3, Global Energy Perspectives ío 2050 and Beyond. World Energy Council, International Institute for Applied Systems Analysis, 1995,

4, Мировая энергетика и переход к устойчивому развитию // Беляев ЛС„ Марченко О,В., Филиппов С.П, и др, - Новосибирск: Наука, 2000, - 269 с.

5, Belyaev L.S„ Marchenko O.V., Solomin S.V. A study of wind energy contribution to global climate change mitigation ¡I Int, Journal of Energy Technology and Policy. 2005, Vol. 3, No, 4, pp. 324-341,

6, Belyaev L.S., Marchenko O.V., Solomin S.V. Studies on competitiveness of space and terrestrial solar power plants II Int, Journal of Global Energy Issues, 2006, Vol. 25, No, 1/2, pp, 94-108,

7, Марченко O.B, Математическая модель энергосистемы с возобновляемыми источниками энергии II Известия РАН. Энергетика, -2006, - № 3, - С. 154-161,

8, Аэбедев A.B. Разработка программного комплекса для глобальных энергетических исследований II Труды 9-й Байкальской Все-росс. конф. "Информационные и математические технологии", - Иркутск: ИСЭМ СО РАН, 2004, - С. 167-173,

9, Манн А,С, ЭТА-МАКРО: модель взаимодействия энергетики и экономики II Экономика и математические методы. - 1978, - Т.14, вып.5. - С, 867-886.

С.К.Скрипкин, Т.Н.Ворожцова

Современные методы метапрограммирования и их перспективы

Потребность в программных комплексах, обеспечивающих возможность быстрой настройки на конкретную среду функционирования или динамической самонастройки в соответствии с изменениями этой среды в процессе работы, постоянно растет. При этом в таких системах необходимо обеспечивать возможности корректировки структуры компонентов в различных аспектах, реконфигурирование и автоматизированную сборку этих комплексов, а также, анализ эффективности функционирования таких систем. Одной генерацией программ с возможностью реконфигурирования по заказу оказывается недостаточно - требуется реализация способности эволюционировать с динамической самонастройкой на изменяющиеся условия окружения. В частности, эволюционирующие системы могут, например, корректировать свои стратегии планирования в зависимости от текущей вычислительной нагрузки или генерировать соответствующие адаптеры и оболочки

при вхождении в новую предметную среду. Такие системы называются адаптивными и такая адаптивность не ограничивается единствееным сеансом функционирования (обучение).

Для реализации автоматического конфигурирования, сборки, параметризации аспектов, динамической и статической адаптивности эволюционирующих систем требуются технологии онтологического описания функциональности компонентов, управления функционально-структурными компонентами, их параметрами и/или реализациями. Этим требованиям в значительной степени отвечают методы метапрограммирования (те1аргодгатт1пд). Метапрограммирование (МП, синоним - обобщенное программирование) позволяет писать программы, формирующие, модифицирующие или представляющие другие программы и управляющие ими же или сами собой (рефлексия, фракталь-ность). Программы, которые представляют другие про-

граммы и управляют ими или сами собой, называются метапрограммами (те!аргодгат5).

Приставка «мета», как правило, выражает «описание чего-то чем-то». Таким образом, метапрограм-мы - это программы описания программ. Приставка «мета» происходит от древнегреческого слова со значениями «после» и «над», обозначающего повышение уровня. Термин «мета» в лингвистике обозначает отношение «причастности» к чему-то, например, метаязыком называется язык, средствами которого описывается другой язык. Грамматика естественного языка по отношению к любому написанному на этом языке тексту также представляет собой метаязык, описывающий структуру последнего. Интерпретация приставки «мета» в компьютерных науках аналогична лингвистической - метапрограммы, таким образом, представляют собой программы, описывающие целевые программы базового уровня решения задач.

Основные определения МП

Метапрограммирование - это процесс создания метапрограмм для формирования или модификации текста целевой программы. Метапрограммы - программы, в результате работы которых формируется необходимый исходный текст целевой программы. Целевая программа - это программа, в результате работы которой решаются целевые прикладные задачи ме-тапрограммирования. Целевой язык программирования - язык программирования, используемый в конечной программе-результате метапрограммирования.

Соответственно, метаметапрограммирование (ММП) - процесс создания метапрограммы для формирования или модификации метапрограмм (многоуровневое метапрограммирование). Метатрансляция -поэтапный процесс получения целевой программы методами и средствами МП. Система МП (СМП) включает систему программирования используемого целевого алгоритмического языка и наборы средств мета-

программирования. На рис. 1 представлена схема, отображающая стандартный процесс создания исполняемого кода и решения прикладной задачи на языках высокого уровня компиляционного типа (Assembler, Fortran, C/C+ + , Pascal).

Обычно различают чистое метапрограммирования - когда язык метапрограммы совпадает с целевым языком (используется единственная система программирования) и неоднородное МП - когда языки МП (более одного) не совпадают с целевым (используются несколько систем программирования для каждого целевого языка). В первом случае процесс метатрансля-ции включает несколько циклов трансляции, компоновки и выполнения метапрограмм до получения целевой программы, затем завершающий цикл для целевой программы. Во втором случае основной недостаток заключается в том, что требуется высокая квалификация специалистов как в области программирования на соответствующих языках, так и в предметной области задачи.

Формальные описания основных терминов и понятий (концептов) обобщенного программирования и их взаимосвязей для конкретных реализаций прикладных систем в предметной области "программ для программ" являются онтологией метапрограммирования (ОМП). В контексте семантической сети цель каждой прикладной ОМП заключается в наделении метапро-граммной системы такой базой знаний, которая обеспечит возможность создавать специальные программные решения проблемно-ориентированных задач как для себя, так и для других областей при ограниченном вмешательстве со стороны человека (или даже при полном отсутствии такового в специальных случаях).

Основные современные подходы к моделированию частных ОМП - это либо список терминов (терминология при неопределенных взаимосвязях); либо классификационная схема (таксономия); либо тезаурус (де-

Рис. 1. Схема станлартной системы программирования

скрипторы/акрипторы, родовидовые, ассоциативные и другие связи); либо тематические карты (Topic Maps), описывающие структуры определенной области знаний, прикрепляя к ним при этом информационные ресурсы; интеллект-карты (Mind Maps), либо язык онтологии (OWL, OML, DAML+OiL или другие взаимосвязи логического описания).

В перспективе общая ОМП может быть сформирована в глобальной семантической сети на основе комплексной интеграции частных онтологий, представляющих концептуальные аспекты конкретных инструментальных систем метапрограммирования.

Классификации систем МП

Системы программирования алгоритмических языков. Для написания метапрограммы, автоматизирующей процесс получения параметрических вариаций программных текстов для решения целевой задачи, может быть использован практически любой алгоритмический язык или скрипт. Некоторые системы программирования традиционных языков (например, C/C++) содержат средства МП (макросы, шаблоны). В частных случаях разработка каких-либо дополнительных средств даже не требуется.

Библиотеки расширений систем программирования. Некоторые системы программирования имеют библиотеки, обеспечивающие автоматическую адаптацию кода, который они поставляют в компилируемую систему. В частности, отбирая алгоритмы и представления данных, наилучшим образом подходящие к целевой платформе и задаче, они корректируют свои компоненты. Кроме того, библиотеки могут содержать специализированные функции и модули автоматизации МП - элементы генераторов текстов программ и средств конвертирования форматов, различные компоненты утилит тестирования и отладки словарей,

Инструментальные программные системы. Внутренние языки инструментального программного обеспечения (Mathlab, Mathematica) по назначению являются языками МП и используются для высокоэффективного решения целевых математических задач. Процесс получения исходных текстов целевой программы реализуется в виде экспорта во внешние форматы представления. При этом используются готовые утилиты генераторов текстов программ и средств конвертирования форматов, различные утилиты тестирования и отладки на уровне метапрограмм.

Системы компьютерной алгебры (аналитимческих преобразвований). Задачи аналитических преобразований математических выражений (типа Reduce) также можно отнести к специальному виду МП, ориентированного на решения математических задач. Основной недостаток состоит в том, что специализированные инструменты часто ориентируются на узкий класс задач, а универсальные инструменты ограничены во внешних представлениях и слабо интегрируются между собой.

Языки молелирования программного обеспечения. К этой категории относятся языки моделирования программного обеспечения (типа UML), назначение которых состоит в создании метапрограммы, автоматизирующей процесс получения исходных текстов целевой программы. Часто используются специальные системы визуального программирования (неоднородное МП). Основной недостаток при этом - потребность в специалистах, имеющих квалификацию в предметной области и в области визуального программирования одновременно.

Специальные языки метапрограммирования. Примером специального языка метапрограммирования является OOPML (Object-Oriented Programing Metalanguage) - метаязык объектно-ориентированного программирования. Его назначение - использование XML для поддержки самодокументируемых и самотестируемых классов. На рис. 2 представлена обобщенная схема системы метапрограммирования.

Основные характеристики языков МП

Язык МП (ЯМП) - это набор правил, определяющих, какие последовательности символов составляют программу (синтаксические правила) и какие вычисления описывает программа (семантические правила). Метапрограмма - это текст, задающий множество процессов вычислений, в соответствии с которым исполнитель, понимающий метапрограмму, разворачивает какой-то один из них с целью получения варианта исходного текста целевой программы. По аналогии с языками программирования имеется набор основных характеристик ЯМП:

• Уровень - характеризует сложность решаемых задач.

• Мощность - характеризует количество и многообразие задач.

• Концептуальная целостность - характеризуется свойствами совокупности понятий, служащих для описания этого языка.

• Надежность - способность языка обеспечивать минимум ошибок при написании метапрограмм. Более того, язык должен быть таким, чтобы неправильные метапрограммы было трудно писать.

• Удобство - легкость восприятия метапрограмм человеком, Эта характеристика важна при коллективной работе,

• Полнота - характеризует способность описать широкий класс задач в некоторой предметной области.

• Гибкость - характеризует легкость выражения необходимых действий.

• Мобильность - независимость от аппаратной и операционной платформы, обеспечивающая переносимость программного обеспечения, используемого в СМП.

• Эффективность - обеспечение эффективной реализации СМП, которая включает:

эффективную реализацию транслятора с

• эффективную генерацию транслятором целевых программ.

Если для всех известных языков программирования эксперты насчитывают более 2570 различных возможностей или свойств, которые можно выделить, то в ЯМП их количество значительно меньше за счет более высокой степени абстракции используемых понятий. Некоторые из характеристик конфликтуют друг с другом. Например, надежность и эффективность. Это подчеркивает сложность проблем, с которыми приходится сталкиваться создателям ЯМП.

Концептуальная целостность каждого ЯМП включает три взаимосвязанных аспекта:

• Экономия концептов - язык должен достигать своей максимальной мощности минимальным количеством концептов.

• Ортогональность концептов - между концептами не должно быть взаимного влияния.

• Единообразие концептов - требование согласованного единого подхода к описанию и использованию всех концептов.

Несмотря на то, что существует много оригинальных методов порождения (генерации) и модификации текстов программ [1,2], методов концептуального программирования [3], общая теория метатрансляции пока не разработана [4]. В подходах к проблеме ме-

татрансляции присутствует жесткая схема поэтапной трансляции, исключающая гибкую адаптацию на каждом этапе к динамической предметной среде. В каждой формализованной схеме метатрансляции есть одна или несколько заранее фиксированных стратегий, при помощи которых осуществляется метатранс-ляция. Переменной величиной является лишь вход, и, иногда, проблемная область, определяющая выбор именно той, а не иной стратегии.

Наиболее продвинутые решения МП и метатрансляции реализуются на платформе XML. Здесь имеется возможность объединять самые различные языки разметки в рамках одного документа, унифицированные правила синтаксического контроля правильности для каждого элемента, семантическое наполнение любой мощности, широкий выбор стандартных инструментальных средств для их обработки.

Метапрограммирование на языке С++

Под МП на языке С++ понимается создание программ на языке С+ + , результатом работы которых являются исходные коды других программ. Когда компилятор С++ генерирует машинные коды (или даже исходный текст на языке ассемблера - это программирование). Когда С++ программа генерирует скрипт на языке jscript для формирования стандартного документа или электронной таблицы или обращения к базам данных - это пример МП.

Рис. 2. Обобщенная схема системы метапрограммирования

МП на С++ опирается на механизмы макроподстановки и шаблонов С++ (в более поздних версиях), Библиотека шаблонов содержит такие средства обобщенного программирования, как выбор наиболее подходящего типа для объявления аргумента функции и многие другие, целиком опирающиеся на этот механизм, Вычисления выполняются без применения циклов и присваиваний (в шаблонном программировании доступны только рекурсия, условный выбор и однократное присваивание через объявление перечислений в классе).

Прием с трансляцией кода в программу на другом языке используется достаточно часто, особенно при создании новых языков программирования, когда вместо написания собственного генератора кода, проще использовать язык С или в научных расчетах. Первые трансляторы С+ + , созданные его автором Б. Страу-струпом, представляли именно такие метатрансляторы в С-код.

Примеры реализации СМП

Идеи МП были воплощены в систему машинного построения программ (СМПП) программно-вычислительный комплекс, разработанный в ИСЭМ СО РАН для расчета тепловых схем теплоэнергетических объектов [5, 6, 7].

Функциональная схема первой версии СМПП (реализованной в конце 1960 гг на ЭВМ БЭСМ-4), дана на рис, 3. Схема наглядно описывает внутренне устройство ядра системы (планировщик вычислительного процесса). Основными составляющими входной информации являются архив математических описаний типовых элементов схем (т-элементов) и сведения о связях схемы, для которой следует получить программу расчета. Кроме того, для каждой схемы нужно задать цель ее расчета, можно задать списки переменных, которые пользователь желает сделать исходными данными и результатами расчета.

На основании входной информации СМПП решает следующие основные задачи:

1. На основании описания состава конкретной схемы и описаний графических элементов, экземпляры которых входят в данную схему, строится модель общей системы уравнений.

2. На основании полученной модели планируется решение системы уравнений.

3. По полученному плану формируется текст программы расчета.

Данная методика, реализованная в программно-вычислительном комплексе СМПП, используется в ИСЭМ СО РАН на протяжении многих лет и постоянно развивается. Существует несколько версий данной системы. С использованием СМПП в институте за последние годы выполнены многочисленные оптимизаци-

онные исследования теплосиловых систем различных типов.

Методы, разработанные в ИСЭМ СО РАН в последние годы [8, 9, 10, 11], предусматривают более высокий уровень автоматизации построения математических моделей. Под моделируемым объектом понимается любой комплексный объект, который целесообразно моделировать в виде сложной схемы, состоящей из отдельных элементов, которые, в свою очередь, могут быть представлены сложными схемами своего уровня, например, технологические схемы теплоэнергетических установок, ТЭЦ, КЭС, АЭС и т. п,

СМПП освобождает инженера от кропотливого труда по конструированию алгоритма расчета тепловой схемы. После подготовки математических описаний т-элементов схем некоторого класса теплоэнергетических установок расчет конкретных схем может быть поручен исполнителям более низкой квалификации. Сама же подготовка математических описаний предъявляет к инженеру повышенные требования. Для получения корректных описаний инженер должен, с одной стороны, очень хорошо представлять себе характер задач, которые предполагается решать с использованием математических моделей, а с другой - в достаточной степени знать принципы действия СМПП.

За длительное время эксплуатации различных версий СМПП (с 1960 г.г.) выявилось одно из важнейших ограничений их применения - это высокие требования к пользователям системы, от которых требуются знания и предметной области теплоэнергетики, и программирования, Этим во многом обусловлены значительные трудности распространения системы как программного продукта. В целом реализации СМПП остаются авторскими программными разработками.

На рис. 4, показана концептуальная схема современной версии СМПП-2006, ориентированной на сетевое применение во внутренней корпоративной сети ИСЭМ СО РАН,

В настоящее время отрабатываются возможности использования системы СМПП путем удаленного доступа к системе через ШеЬ-сервисы, при этом устраняется необходимость передачи программного продукта. Рассмотренная с точки зрения метапрограммирова-ния, система машинного построения программ (СМПП), продолжает эволюционное развитие своих оболочек, в то время как функциональное ядро системы планирование вычислительного процесса сохраняется неизменным.

С учетом терминологических изменений, характерных для современного этапа эволюции СМПП предлагается новая расшифровка аббревиатуры СМПП (система метапрограммирования приложений).

Заключение

Эволюционное развитие общей методологии и средств реализации различных частных подходов ме-

^программирования продолжается в частных онтоло-гиях (MetaL, X++/$uperX+ + , shortX и др.). На современном этапе первостепенной задачей развития становится сетевая интеграция частных онтологий мета-программирования, удаленный доступ к инструментальным средствам и стандартам реализации на осно-

ве единого информационного пространства науки и образования, использования универсальной платформы XML и средств построения глобальных приложений на основе сервис-ориентированных технологий и интеллектуализации пользовательских интерфейсов на основе AJAX.

Входная информация

Рис. 3. Функциональная схема ранней версии СМПП

Сменные архивы предметных областей

L

Программы решения задач проектирования и математического модел и-рования ТЭУ

!_

Программы решения задач идентификации математических моделей ТЭУ

г гЯшШ Р1К1Р*

Г

Программы решения задач оптимизации дейст вуюших объектов ТЭУ

Удаленный

администратор

СМПП-2006

Удаленные клиенты

Web-сервисов

СМПП-2006

Удаленные клиенты Web-сервисов для решения предметных задач

Рис. 4. Концептуальная схема сетевой версии СМПП-2006

Возможности онтологического подхода позволяют расширить области применения СМП путем автоматической смены онтологий предметных областей, содержащих явно описанные формальные, полуформальные и неформальные знания на основе диалектов XML и других специализированных средств описания решаемых задач и генерируемых программных приложений. Как следствие использования онтологического подхода и расширения интеллектуальной составляющей метапрограммирования, в ближайшей перспективе можно ожидать переход на активное использование SILK-интерфейсов метапрограммирования (формализованный естественный язык, активное использование высокоуровневого мультимедиа) и доступа к распределенным ресурсам.

Библиографический список

1, Чарнецки К„ Айзенекер V. Порождающее программирование: Методы, инструменты, применение: Пер. с англ. -Спб,: Питер, 2005, - 730 с,

2. Ильин В.Д. Система порождения программ, - М,: Наука, 1989. - 264 с.

3, Одинцов И,О, Профессиональное программирование, Системный подход, Изд.2, -Спб,: БХВ-Петербург, 2004,

4, Башмаков А.И., Башмаков И,А Интеллектуальные информационные технологии: Уч. пособие. - М.: Изд-во МГТУ им Н.Э. Баумана. 2005, - 304 с.

5, Карпов В,Г., Попырин ЛС„ Самусев В,И, Эпельштейн В,В, Автоматизация построения программ для расчета схем теплоэнергетических установок // Изв, АН СССР. Энергетика и транспорт, - 1973, - №1, - С, 129-137,

6, Попырин АС., Самусев В.И„ Эпельштейн В.В, Автоматизация математического моделирования теплоэнергетических установок. - М,: Наука, 1981, - 235 с.

7, Клер А.М., Скрипкин С.К., Деканова Н.П, Автоматизация построения статических и динамических моделей теплоэнергетических установок, II Изв. РАН, Энергетика. - 1996. -№ 3, - С. 78-84,

8, Математическое моделирование и оптимизация в задачах оперативного управления тепловыми электростанциями I Клер, Н.П. Деканова, С, К. Скрипкин и др. - Новосибирск: Наука, 1997, - 120 с.

9, Ворожцова Т.Н., Скрипкин С,К. Схемо-ориентиро-ванная информационная гипертехнология II В монографии "Методы управления физико-техническими системами энергетики в новых условиях, /Н.И.Воропай, Н.Н.Новицкий, Сеннова и др. - Новосибирск: Наука, 2000. - 273, 275-284 с.

10, Клер A.M., Скрипкин С,К„ Ворожцова Т.Н. Проблемы математического моделирования и оптимизации схем и параметров теплоэнергетических установок II Системные исследования проблем энергетики, - Новосибирск: Наука, 2000,

11, Максимов A.C. Модернизация СМПП и решение с ее помощью задач адаптации математических моделей теплофикационных турбин II Сб, трудов Научно-технический прогресс в энергетике, - Иркутск: ИСЭМ СО РАН, 2004, - С, 120-129,

А.П.Костюченко

Разработка инструментальной системы для создания онтологий системных исследований в энергетике

Введение. Проведение системных исследований в энергетике предполагает комплексный подход, требующий совместного рассмотрения объектов энергетики, их функционирования и перспектив развития, В настоящее время отсутствуют компьютеризированные системы представления и обработки научных знаний в энергетике, Вместе с тем, необходимость их создания является актуальной, учитывая ряд факторов:

1) создание и развитие Интегрированной системы информационных ресурсов РАН (ИСИР РАН) и Информационной системы СО РАН, в которых желательно отражать результаты системных исследований в энергетике;

2) существующий разрыв между учеными старшего поколения и молодежью (отсутствие либо недостаточность среднего звена) и необходимость сохранения уникальных знаний старшего поколения;

3) выполняющаяся в ИСЭМ СО РАН разработка ИТ-инфраструктуры системных исследований в энергетике, в рамках которой необходимо решать задачу общего понимания структуры информации и ее совместного использования.

Кроме того, необходимо учитывать существующую в Internet тенденцию перехода к семантическим Web, с тем, чтобы был возможен поиск не только по ключевым словам, но и по смыслу.

Существуют различные подходы, модели и языки описания знаний. Однако все большую и вполне заслуженную популярность последнее время приобретают онтологии. Онтологии позволяют осуществлять автоматизированную обработку семантики информации и ее представление, с целью эффективного использования (преобразования, поиска), Соответствующая технология базируется не на осмыслении информации человеком, а на обеспечении семантической интероперабельности информационных ресурсов, т.е. на автоматизированной интерпретации и обработке информации.

Актуальность разработки онтологий для системных исследований в энергетике приводит к необходимости использования программной среды для облегчения трудоемкого процесса построения онтологий. Несмотря на то, что, по данным консорциума W3C, уже существуют более 50 готовых инструментов редактирования онтологий [1], их основными недостатками являются:

1) слабая выразительность графического представления таксономии концептов;

2) ограниченный набор функциональных возможностей средств интероперабельности (некоторые инструменты не имеют возможности импорта/экспорта в формате OWL);

3) возможности расширяемости приложения зачастую отсутствуют;

4) неудобная реализация пользовательских интерфейсов.

Путь к решению проблемы выбора оптимального инструмента напрашивается сам по себе и заключается в создании собственной программной среды, учитывающей и исключающей недостатки существующих систем.

Проектирование инструмента для создания онтологий предполагает определение следующих ключевых моментов:

1) выбор методологии;

2) выбор языка хранения знаний;

3) формализм описания онтологий;

4) метод хранения онтологий (файлы/СУБД);

5) определение внутренних функциональных возможностей (проверка непротиворечивости);

6) определение сервисных функций (метод графического представления, импорт и экспорт в различные форматы).

Онтология в формальном стиле описывает взаимосвязи между объектами и свойства объектов конкретной предметной области. При этом онтология имеет вполне определенную структуру, состоящую из двух блоков [2]:

1) таксономии;

2) набора логических свойств предметной области и правил вывода.