Концептуальна архітектура інтегрованого середовища генеруючого програмування
Розглянуті концепції побудови архітектури інтегрованого середовища генеруючого програмування (ІС ГП). Визначені типові компоненти, базова платформа і представлена модель архітектури ІС ГП....
Saved in:
Date: | 2010 |
---|---|
Main Author: | |
Format: | Article |
Language: | Ukrainian |
Published: |
Інститут програмних систем НАН України
2010
|
Subjects: | |
Online Access: | http://dspace.nbuv.gov.ua/handle/123456789/50359 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Journal Title: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Cite this: | Концептуальна архітектура інтегрованого середовища генеруючого програмування / Є.І. Моренцов // Пробл. програмув. — 2010. — № 4. — С. 89-96. — Бібліогр.: 8 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-50359 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-503592017-05-29T12:31:01Z Концептуальна архітектура інтегрованого середовища генеруючого програмування Моренцов, Є.І. Архітектура програмного забезпечення Розглянуті концепції побудови архітектури інтегрованого середовища генеруючого програмування (ІС ГП). Визначені типові компоненти, базова платформа і представлена модель архітектури ІС ГП. Рассмотрены концепции построения архитектуры интегрированной среды генерирующего программирования (ИС ГП). Определены типовые компоненты, базовая платформа и представлена модель архитектуры ИС ГП. Construction concepts of the integrated environ-ment architecture of generative programming are considered. The type components and base platform are defined and architecture model is presented. 2010-12 Article Концептуальна архітектура інтегрованого середовища генеруючого програмування / Є.І. Моренцов // Пробл. програмув. — 2010. — № 4. — С. 89-96. — Бібліогр.: 8 назв. — укр. 1727-4907 http://dspace.nbuv.gov.ua/handle/123456789/50359 519.683:681.3 uk Інститут програмних систем НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Ukrainian |
topic |
Архітектура програмного забезпечення Архітектура програмного забезпечення |
spellingShingle |
Архітектура програмного забезпечення Архітектура програмного забезпечення Моренцов, Є.І. Концептуальна архітектура інтегрованого середовища генеруючого програмування |
description |
Розглянуті концепції побудови архітектури інтегрованого середовища генеруючого програмування (ІС
ГП). Визначені типові компоненти, базова платформа і представлена модель архітектури ІС ГП. |
format |
Article |
author |
Моренцов, Є.І. |
author_facet |
Моренцов, Є.І. |
author_sort |
Моренцов, Є.І. |
title |
Концептуальна архітектура інтегрованого середовища генеруючого програмування |
title_short |
Концептуальна архітектура інтегрованого середовища генеруючого програмування |
title_full |
Концептуальна архітектура інтегрованого середовища генеруючого програмування |
title_fullStr |
Концептуальна архітектура інтегрованого середовища генеруючого програмування |
title_full_unstemmed |
Концептуальна архітектура інтегрованого середовища генеруючого програмування |
title_sort |
концептуальна архітектура інтегрованого середовища генеруючого програмування |
publisher |
Інститут програмних систем НАН України |
publishDate |
2010 |
topic_facet |
Архітектура програмного забезпечення |
url |
http://dspace.nbuv.gov.ua/handle/123456789/50359 |
citation_txt |
Концептуальна архітектура інтегрованого середовища генеруючого програмування / Є.І. Моренцов // Пробл. програмув. — 2010. — № 4. — С. 89-96. — Бібліогр.: 8 назв. — укр. |
work_keys_str_mv |
AT morencovêí konceptualʹnaarhítekturaíntegrovanogoseredoviŝageneruûčogoprogramuvannâ |
first_indexed |
2025-07-04T12:02:17Z |
last_indexed |
2025-07-04T12:02:17Z |
_version_ |
1836717743213117440 |
fulltext |
Архітектура програмного забезпечення
89
УДК 519.683:681.3
Є.І. Моренцов
КОНЦЕПТУАЛЬНА АРХІТЕКТУРА ІНТЕГРОВАНОГО
СЕРЕДОВИЩА ГЕНЕРУЮЧОГО ПРОГРАМУВАННЯ
Розглянуті концепції побудови архітектури інтегрованого середовища генеруючого програмування (ІС
ГП). Визначені типові компоненти, базова платформа і представлена модель архітектури ІС ГП.
Вступ
Генеруюче програмування (genera-
tive programming) – це методи і засоби
генерації сімейств систем і застосувань з
окремих компонентів, аспектів, повторно-
використовуваних компонентів (ПВК), ка-
ркасів й ін. [1]. Базис цього програмування
складають методи і засоби об’єктно-
оріентованого та об’єктно-компонентного
програмування [2, 3], доповнені механіз-
мами генерації багаторазових елементів і
ПВК, а також властивостями їхньої мін-
ливості (змінності), взаємодії й іншими.
Головний продукт інженерії предметної
області (ПрО) у генеруючому програму-
ванні (ГП) – це сімейство програмних сис-
тем (ПС), які генеруються на основі зага-
льної генеруючій моделі GDM (Generative
Domain Model), що включає у себе засоби
визначення членів (представників) сімейс-
тва, а також методи генерації, зборки
членів сімейства і базу конфігурації для
розгортання сімейства в операційному се-
редовищі.
У небагатьох публікаціях, присвя-
чених дослідженню окремих аспектів ГП,
до цього часу не розглядалося питання ви-
значення та побудови архітектури ІС ГП.
Ураховуючи, що дослідження цього від-
криває шлях до практичного застосування
ГП, в рамках теми фундаментальних до-
сліджень НАН України у якості першого
кроку нами була розроблена концептуаль-
на архітектура ІС ГП.
Під ІС ГП будемо розуміти систему
мовних, графічних та інструментальних
засобів, яка призначена для розробки сі-
мейства програм ПрО в парадигмі генеру-
ючого програмування. При цьому для ко-
жного унікального домену (ПрО) фактично
створюється своє ІС ГП. Саме тому наше
дослідження було сконцентровано на ви-
значенні концепцій загальної або типової
архітектури ІС ГП, яка містить класи ком-
понентів ІС, а екземпляри цих класів до-
бираються із наявних компонентів при по-
будові ІС для конкретного домену [1, 4].
Концептуальна архітектура ІС ГП
була визначена виходячи з:
- парадигми генеруючого програму-
вання;
- проекції життєвого циклу, точніше
– технології розробки програмних систем
(ПС), на парадигму ГП [5];
- функціональності інструментарію,
необхідного для підтримки технологічних
процесів ГП, внутрішніх і зовнішніх ін-
терфейсів інструментарію;
- базової платформи, на якій реалі-
зується ІС ГП.
Парадигма генеруючого про-
грамування
Генеруюче програмування – являє
собою парадигму технології розробки про-
грамного забезпечення, засновану на мо-
делюванні сімейства програмних систем,
використовуючи які, можна по конкретних
технічних вимогах автоматично отримати
спеціалізований та оптимізований проміж-
ний або кінцевий програмний продукт з
елементарних, багаторазово використову-
ваних компонентів реалізації за допомо-
гою бази знань про конфігурації.
Генеруюче програмування фокусує
увагу не на унікальних продуктах (об'єк-
тах), а на сімействах програмних систем
(класах об'єктів). Таким чином, генеруюче
програмування має велику подібність з те-
орією універсальних та інтегративних мо-
делей, застосовуваних для синтезу об'єк-
тів, і які є моделями не окремо взятого об'-
єкта, а моделями всіх об'єктів, що нале-
© Є.І. Моренцов, 2010
ISSN 1727-4907. Проблеми програмування. 2010. № 4
Архітектура програмного забезпечення
90
жать розглянутому класові (моделлю сі-
мейства об'єктів або систем).
Таким чином, генеруюче програму-
вання – це автоматизоване виробництво
програмних продуктів з окремих компоне-
нтів, на манер того, як це відбувається при
виробництві промислових виробів. Клю-
човими моментами тут є уніфікація, авто-
матизація і гнучкість.
Для реалізації парадигми генерую-
чого програмування необхідні [6]:
- компоненти реалізації, з урахуван-
ням загальної архітектури даної лінійки
продуктів;
- модель знань про трансляцію абс-
трактних вимог у конкретні зв'язки компо-
нентів;
- реалізація цих знань у генера-
торах.
Схематично, у контексті визначення
архітектури ІС ГП на найвищому рівні аб-
стракції, парадигма ГП представлена на
рис. 1.
Проекція технології розробки про-
грамних систем на парадигму ге-
неруючого програмування
Основними складовими концепції
генеруючого програмування, що виплива-
ють з парадигми ГП є:
- формалізація предметної області і
побудова простору рішень;
- мови опису предметних областей
та мовно-орієнтоване програмування;
- методи реалізації застосувань на
основі мов описів предметних областей і
повторного використання генерованих, па-
раметризованих і конфігурованих об'єктів;
- спеціальне мовно-орієнтоване се-
редовище реалізації застосувань та інстру-
ментарій розробки і застосування повторно
використовуваних об'єктів.
Парадигма і, відповідно, концепції
ГП впливають на технологію розробки ПС
у середовищі ГП. Щоб визначити основні
елементи даної технології виконаємо про-
екцію технології розробки ПС на парадиг-
му ГП (рис. 2).
Основними її елементами є:
- знання конфігурації;
- DSL-технології;
- технології генерації;
- технології компонентів.
Склад кожної з них представлений
на рис. 2.
DSL-технології містять:
- мови програмування (наприклад,
С++, Java, С#, Ada 2005);
- розширювані мови;
- нові текстуальні мови;
- графічні мови;
- інтерактивні помічники та інтер-
фейси користувача;
- також будь-які комбінації з вище
перерахованих компонентів.
Формальні
специфікації
ГЕНЕРАТОР
Програмна
система
Репозитарій базових
компонентів повтор-
ного використання
Рис. 1. Схематичне представлення парадигми генеруючого програмування
Архітектура програмного забезпечення
91
Простір проблеми
- концепти специфікації
домена;
- властивості домена
Знання конфігурацій
- неправильна комбінація
властивостей;
- встановлювання по
замовчуванню;
- залежності по
замовчуванню;
- правила конструювання;
- оптимізація
Простір рішень
- елементарні компоненти;
- максимально з’ єднувальні;
- мінімально надлишкові
DSL-технології
- мови програмування;
- розширювальні мови;
- нові текстуальні мови;
- графічні мови;
- інтерактивні помічники;
- будь-які комбінації з
вище приведених
Технології генерації
- простий підхід;
- темплейти та фрейми;
- системи трансформації;
- мови програмування з
підтримкою метапрогра-
мування;
- розширювальні системи
програмування
Технології компонентів
- базові компоненти;
- компонентні моделі;
- АОП-підходи
Рис. 2. Проекція технології на парадигму генеруючого програмування
Технології генерації включають:
- простий прохід;
- шаблони та фрейми;
- системи трансформації, що за-
безпечують трансформацію елементів опи-
су домену з мови вищого рівня до мови
нижчого рівня (аж до виконуваного коду);
- мови програмування з підтрим-
кою метапрограмування;
- розширювані системи програму-
вання.
Компонентні технології містять:
- базові компоненти;
- компонентні моделі;
- АОР-підходи (тобто підходи,
властиві аспектно-орієнтованому програ-
муванню).
Типові компоненти інтегрованно-
го середовища генеруючого про-
грамування
У технології ГП можна виділити дві
основних фази:
- моделювання і специфікування
домену (ПрО);
- автоматичну генерацію коду ПС.
При моделюванні і специфікації
домену двома фундаментальними пробле-
мами, які необхідно досліджувати, є склад
проблемних мов моделювання та специфі-
кацій домену і склад інструментів для мо-
делювання і специфікацій домену.
Автоматичну генерацію коду про-
грамної системи виконують генератори і
перетворювачі моделей.
Базовим елементом технології ГП і
ядром ІС ГП, навколо якого будуються усі
компоненти, є репозитарий, у якому нако-
пичуються повторно використовувані
компоненти та знання конфігурації. ПВК
представляють собою параметризовані
компоненти сімейства систем (програм)
домену, які реалізують деякі методи обро-
бки об’єктів домену. Під знаннями конфі-
гурації розуміється сукупність правил, які
визначають виконувані комбінації, залеж-
ності і значення за замовчуванням для роз-
роблюваних компонентів.
До складу мов специфікації та мо-
делювання домену входять:
- мови специфікації домену (DSL);
- метамови специфікації DSL для
опису потрібної мови специфікації конкре-
тного домену;
- проміжні мови (XMI, XML, XSLT
та ін.);
Архітектура програмного забезпечення
92
- графічні мови (моделі та мета-
моделі);
- мови програмування.
Інструменти для моделювання і
специфікації домену включають:
- редактори мов;
- графічні редактори;
- інструменти проектування DSL
(редактор метамови опису DSL та генера-
тор мови DSL за її описом).
Окремий клас компонентів ІС ГП
складають методи проектування DSL та
методи моделювання і специфікації доме-
ну, які використовує розробник ПС.
У даний час у рамках генеруючого
програмування розроблено декілька спо-
собів генерації коду [7]. Серед них можна
виділити наступні:
- підстановки;
- підстановки з виконанням коду;
- оброблювачі даних регулярної
структури.
Генерація коду, що заснована на
підстановках, припускає, що розроблювач
створює шаблон коду і набір даних у спе-
ціальному форматі, а потім, за допомогою
допоміжної програми, виконує підстанов-
ку цих даних у шаблон. Набір використо-
вуваних у шаблоні підстановок може ви-
значатися як статично, так і динамічно.
Такий підхід досить наочний і простий у
використанні, однак має досить обмежену
область застосування і вимагає попере-
дньої підготовки переданих для підстанов-
ки даних.
Класичний приклад підстановок (з
деякими застереженнями) – шаблони
(templates) мови C++.
Набагато ширше можливості при
генерації коду з використанням підстанов-
ки з виконанням коду. Цей вид генерації
відрізняється від попереднього можливіс-
тю застосовувати в шаблоні не тільки під-
становки, але також вставки виконуваного
коду, що оперує переданими в шаблон да-
ними. Код, що виконується, найчастіше
використовує мову, спеціально створену
для конкретного типу шаблонів і яка міс-
тить основні алгоритмічні конструкції
(прості розгалуження – IF, виконання іте-
рацій за переданими як параметри спискам
– WHILE, цикли з заданою кількістю іте-
рацій – FOR).
При ускладненні конструкцій, за-
стосовуваних у шаблоні, і збільшення мо-
жливостей мови, зменшується наочність
самих шаблонів.
Третій спосіб генерації коду засно-
ваний на оброблювачах даних регулярної
структури і припускає повний поділ даних
і їхнього представлення. У цьому випадку
шаблон відіграє роль оброблювача даних і
пишеться на спеціальній метамові. При-
кладом може послужити XSLT-обробка
даних, представлених у XML-форматі.
Основною перевагою цього способу
генерації коду є можливість обробки даних
складної структури без попередньої підго-
товки цих даних. Існування перерахованих
видів генерації коду обумовлено неоднорі-
дністю розв'язуваних у рамках генеруючо-
го програмування задач і структури мета-
даних.
Питання про використання того або
іншого способу генерації залежить від
умов конкретної задачі і даних, використо-
вуваних для такої генерації.
Генератори і перетворювачі моде-
лей належать до класу інструментів ІС ГП.
Серед них можна виділити наступні:
- інструменти трансформації (DSL-
трансформатори), які трансформують спе-
цифікацію домену на мові DSL у еквівале-
нтний опис на одній із проміжних мов
(XML, XSLT, XMI) або на мові програму-
вання;
- DSL-компілятори виконуваного
коду, які із специфікації домену генерують
виконуваний код;
- перетворювачі моделей;
- компілятори з мов програму-
вання;
- компілятори з проміжних мов.
Останні два види генераторів також
генерують виконуваний код.
Важливою складовою ІС ГП є ін-
терфейси, в тому числі інтерфейс корис-
тувача, інтерфейси між інструментами й
інтерфейс із базовою платформою реаліза-
ції ІС ГП.
На рис. 3 показана концептуальна
архітектура репозитарію ІС ГП, а на рис. 4
– класифікація компонентів типового ІС
ГП.
Архітектура програмного забезпечення
93
Репозитарій інтегрованого
середовища генеруючого
програмування
Компоненти та
конфігурації
Менеджер
репозитарію
Артефакти
розробки ПС
Компоненти сімейства
програмних систем
Знання про
конфігурації
Рис. 3. Концептуальна архітектура репозитарію інтегрованого
середовища генеруючого програмування
Базова платформа інтегрованого
середовища генеруючого програ-
мування
У якості базової платформи реалі-
зації ІС ГП нами запропоновано середо-
вище Eclipse [8]. Eclipse має повністю від-
критий вихідний код і розвинутий меха-
нізм розширення середовища. Віртуальна
машина мови Java дозволяє використову-
вати середовище Eclipse на різних платфо-
рмах, включаючи Windows і UNIX. У ви-
хідних текстах надається середовище роз-
робки для мови Java – основної мови про-
грамування Eclipse. Надаються також за-
соби інтеграції в Eclipse компіляторів мови
C++ зовнішніх розроблювачів. Паралельно
ведуться проекти з відкритим вихідним
кодом і для ряду інших мов програмуван-
ня. Усі ці проекти використовують станда-
ртні механізми розширення середовища
Eclipse .
На вибір Eclipse як базового середо-
вища вплинули дві важливі властивості
Eclipse.
Першою з них є надання засобів для
розробки інтерфейсу користувача,
орієнтованого на використання конкретної
мови програмування. Сукупність таких
елементів інтерфейсу користувача для пе-
регляду (views) і редагування (editors) ін-
формації отримало назву перспективи се-
редовища Eclipse. Всі елементи перспекти-
ви представляються на окремій закладці
середовища. Існуючий у середовищі
Eclipse редактор програм може бути легко
розширений у синтаксично орієнтований
редактор конкретної мови програмування.
Для файлів проекту можуть бути задані
фільтри, що дозволяють визначити файли з
текстами програм й інші ресурси, що на-
лежать до перспективи мови програму-
вання.
Другою важливою для нас властиві-
стю Eclipse є можливість доповнення вже
існуючих модулів середовища як новими,
так і раніше розробленими інструментами
через стандартні точки розширення.
Платформа Eclipse також має роз-
ширювану архітектуру модулів, що під-
ключаються (плагинів), яка дозволяє пра-
цювати в ІС ГП практично з будь-яким
типом даних. Розроблювач також може
розробляти свої власні модулі, що підклю-
чаються, для роботи з будь-якими іншими
об'єктами або використовувати готові мо-
дулі “третіх” виробників – в обох випадках
нові модулі, що підключаються, прозорим
образом цілком інтегруються з існуючими
інструментами.
Архітектура програмного забезпечення
94
Інтегроване середовище
генеруючого програмування
Базова платформа
ECLIPSE
Програмування
Мови Інструменти Інтерфейси
Проміжні
Репозитарій
Метамови
Графічні
D S L
X S L T
Моделі
Шаблони
X M L
Розробки DSL
Редактори мов
Графічні редактори
Генератори
DSL-компілятори та
перетворювачі
моделей
Компілятори з мов
програмування та
проміжних мов
Тестування та
верифікації
МіжплатформеннийМіжкомпонентнийКористувача
Рис. 4. Компоненти інтегрованого середовища генеруючого програмування
Саме тому нами пропонується у
якості базової платформи для ІС ГП вико-
ристовувати середовище Есlірsе – як від-
криту платформу для інтеграції інструмен-
тарію, яка підтримується великим і постій-
но розширюваним співтовариством компа-
ній-виробників інструментів. При цьому
платформа Eclipse забезпечує інтерфейси
(точки розширення) для прозорої інтегра-
ції інструментів. У результаті весь інстру-
ментарій інтегрованого середовища гене-
руючого програмування матиме єдиний
графічний стиль і користувачеві не при-
йдеться заново вивчати користувальниць-
кий інтерфейс кожного окремого інстру-
мента або кожної інструментальної плат-
форми.
Архітектура інтегрованого середо-
вища генеруючого програмування
Як основний результат дослідження
нами визначена модель архітектури інтег-
Архітектура програмного забезпечення
95
рованого середовища генеруючого про-
грамування, яка показана на рис. 5.
У ній можна виділити три великих
блоки:
- інструментальне середовище
розробки;
- репозитарій;
- базову платформу.
Склад кожного з них відображений
на рис. 5, як і типові компоненти ІС ГП,
інтерфейси між компонентами і між ін-
струментами та користувачем-розробни-
ком ПС, схема створення опису ПрО та
його перетворення у виконуваний код ПС.
Зрештою подамо принципи побудо-
ви середовища генеруючого програмування
на компонентній основі, запропоновані
В.М. Грищенко.
Як вищезазначено, для кожного сі-
мейства застосувань (систем і програм)
має створюватися своє ІС ГП, що включає
конкретні компоненти. Процес побудови
ІС ГП складається з 11 наступних кроків:
1) визначення змісту і границь
предметної області, для якої будується
середовище;
2) визначення моделей для обраної
предметної області, їхніх властивостей і
взаємозв'язків;
3) визначення формального апарата
представлення предметної області;
4) визначення мовних засобів опису
і рішення задач у предметній області;
5) визначення основних архітектур-
них і проектних рішень для застосувань із
предметної області;
6) вибір frameworks для застосувань
із предметної області;
7) реалізація templates і компонентів
для застосувань із предметної області;
8) визначення формальних правил і
мовних засобів генерації, параметризації,
конфігурування для templates і компо-
нентів;
9) вибір і/або розробка генераторів
для templates;
10) вибір і реалізація засобів для
конфігурування і розгорнення застосувань;
11) вибір і реалізація засобів оброб-
ки вимог до створюваних застосувань.
Інтерфейс користувача
Графічні редактори Текстові редактори мов
програмування
Моделі та шаблони Мови програмування
Засоби розробки
DSL
Редактор
DSL
Метамова для
опису DSL
Генератор
DSL
Мова
DSL
Специфікація
мови DSL
Компілятор з
проміжної
мови
Компілятор з мови
програмування
Программа на
проміжній
мові
Програма на
мові програмування
Інструмент
трансформації
Специфікації домену (ПрО)
DSL-компілятор Виконуваний код ПС
Точки входу Точки входуЗнання про
конфігурації
Артефакти розробкиКомпоненти
сімейства ПС
Менеджер
репозитарію
Базова платформа ІС ГП
Середовище ECLIPSE Операційне середовище (Windows, Unix, Linux, …)
Інструментальне середовище розробки
Репозитарій
Рис. 5. Модель архітектури інтегрованого середовища генеруючого програмування
Архітектура програмного забезпечення
96
Основою для побудови інтегрова-
ного середовища генеруючого програму-
вання є, по-перше, типова архітектура ІС
ГП, по-друге, наявність відповідних ком-
понентів (включаючи екземпляри інстру-
ментарію) із класів типових компонентів
ІС ГП. Саме визначення необхідних екзе-
мплярів компонентів у залежності від спе-
цифіки ПрО, їх добір та/або розробка (у
випадку відсутності потрібних) є основним
стрижнем процесу побудови інтегрованого
середовища генеруючого програмування
на компонентній основі.
1. Чернецки К., Айзенекер У. Порождающее
программирование // Методы, инструмен-
ты, применение. – М. – СПб. – Харьков. –
Минск: Издательский дом Питер, 2005. –
730 с.
2. Грищенко В.Н. Метод об’єктно-
компонентного проектування програмних
систем // Проблеми програмування. –
2007. – № 2. – С. 113–125.
3. Лаврищева Е.М. Методы программирова-
ния // Теория, инженерия, практика. –
Киев: Наук. думка, 2006. – 451с.
4. Crarnetcki K. Owerview of Generative
Software Development // Canada,
www.crarnetcki.fcm.org
5. Лавріщева К.М. Програмна інженерія. – К.,
2008. – 319 с.
6. Bordin Matteo. Generative Programming and
Components: theory and practice.
http://www.studenti.math.unipd.it/~mbordin/p
roj/gpc.pdf.
7. Канжелев С.Ю., Шалыто А.А. Автомати-
ческая генерация автоматного кода // Ин-
формационно-управляющие системы. –
2006. – № 6. – С. 35–42.
8. Гамма Э., Бек К. Расширения Eclipse:
принципы, шаблоны и подключаемые мо-
дули / Пер. с англ. – М.: КУДИЦ-ОБРАЗ,
2005. – 384 с.
Отримано 17.05.2010
Про автора:
Моренцов Євген Іванович,
кандидат технічних наук,
старший науковий співробітник.
Місце роботи автора:
Інститут програмних систем
НАН України.
03187, Київ-187,
Проспект Академіка Глушкова, 40.
Тел. 38 044 526 4286.
e-mail: yevhen18@diawest.net.ua
|