Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ

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

Full description

Saved in:
Bibliographic Details
Date:2003
Main Authors: Цейтлин, Г.Е., Яценко, Е.А.
Format: Article
Language:Russian
Published: Інститут проблем математичних машин і систем НАН України 2003
Subjects:
Online Access:https://nasplib.isofts.kiev.ua/handle/123456789/723
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:Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ / Цейтлин Г.Е., Яценко Е.А. // Математические машины и системы. – 2003. – № 2 . – С. 64 – 76.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
_version_ 1859983107318349824
author Цейтлин, Г.Е.
Яценко, Е.А.
author_facet Цейтлин, Г.Е.
Яценко, Е.А.
citation_txt Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ / Цейтлин Г.Е., Яценко Е.А. // Математические машины и системы. – 2003. – № 2 . – С. 64 – 76.
collection DSpace DC
description Статья посвящена результатам, полученным в рамках интеграции алгебры алгоритмики и современных объектно-ориентированных средств. Рассмотрены средства построения семейств алгоритмических алгебр, ассоциированных с со-временными методами разработки программ. Приведен обзор результатов по абстрактно-автоматным моделям управле-ния. Предложен также подход к построению баз алгоритмических знаний, базирующийся на аппарате алгебры алгоритмики. Табл.: 2. Ил.: 3. Библиогр.: 30 назв. Стаття присвячена результатам, отриманих в рамках інтеграції алгебри алгоритміки і сучасних об’єктно-орієнтованих засобів. Розглянуті засоби побудови сімейств алгоритмічних алгебр, асоційованих із сучасними методами розробки програм. Наведено огляд результатів з абстрактно-автоматних моделей керування. Запропоновано також підхід до побудови баз алгоритмічних знань, що грунтується на апараті алгебри алгоритміки. Табл.: 2. Іл.: 3. Библіогр.: 30 назв. The paper is dedicated to the results got within the framework of integration of algorithmics algebra and contemporary object-oriented means. The means of algorithmic algebras constructing associated with present-day methods of program development are considered. The review of results on abstract-automaton models of control are given. The approach to constructing algorithmic knowledge bases grounded on algorithmics algebra apparatus is also suggested. Tabl.: 2. Figs.: 3. Refs.: 30 titles.
first_indexed 2025-12-07T16:26:53Z
format Article
fulltext ISSN 1028-9763. Математичні машини і системи, 2003, № 2 64 УДК 681.3 Г.Е. ЦЕЙТЛИН , Е .А. ЯЦЕНКО_______________________________________________________ ЭЛЕМЕНТЫ АЛГЕБРАИЧЕСКОЙ АЛГОРИТМИКИ И ОБЪЕКТНО - ОРИЕНТИРОВАННЫЙ СИНТЕЗ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ 1. Введение К числу важных и перспективных областей современной компьютерной науки относится алгебраическая алго- ритмика, интенсивно развиваемая в Украине и за рубежом [1]. Основным объектом исследований в этой об- ласти служат алгоритмы, обработка математических построений из различных разделов классической алгеб- ры (полугруппы, группы, кольца, поля и т.д.). Однако особый интерес представляет одно из актуальных на- правлений алгебраической алгоритмики, посвященное исследованиям различных алгебр алгоритмов. Весо- мый вклад в развитие этого направления внесен фундаментальными работами украинской алгебро- кибернетической школы [2, 3]. Ретроспектива, современное состояние и перспективы исследований в данном направлении отражены в [4]. Настоящая статья посвящена результатам, полученным в плане дальнейшей интеграции аппарата алгебры алгоритмики [5] и современных объектно-ориентированных средств [6–8]. Изложение материала подчинено следующей структуре. В разделе 2 рассмотрены средства построе- ния семейств алгоритмических алгебр, ассоциированных с современными методами разработки программ (структурным, неструктурным, объектно-ориентированным). Особое внимание уделено взаимосвязанным формализмам (аналитическим, естественно-лингвистическим и граф-схемным). В разделе 3 приведен обзор результатов по абстрактно-автоматным моделям управления, концепции дискретного преобразователя (ДП) и распределенных систем. В терминах ДП приводится трактовка взаимодействия агентов со средой, изложен- ная в [9–11]. Базирующийся на аппарате алгебры алгоритмики подход к построению баз алгоритмических зна- ний предложен в разделе 4. Суть подхода демонстрируется на задачах символьной мультиобработки (парал- лельные алгоритмы сортировки, поиска, языкового процессирования). 2. Понятие клона и алгебраические спецификации программ Данный раздел посвящен проблематике, связанной с концепцией клона – одного из важнейших понятий об- щей алгебры и некоторым его актуальным приложениям в современном программировании. Под клоном [12] будем понимать универсальную алгебру: >ΠΕΡΚ = <O; CУ , где O – основа – множество операций определенного типа, а СУПЕР – сигнатура, содержащая лишь суперпозицию операций [5, 12, 13]. Данное понятие может быть использовано для описания, построения и исследования как различ- ных клонов (семейств алгебр), так и отдельных представителей этих семейств. При этом сигнатура операций каждой конкретной алгебры из рассматриваемого семейства служит функционально полной системой или системой образующих (СО) соответствующего клона. Классическим примером одноосновного клона является двузначная алгебра логики – алгебра Поста (АП): ( ) >ΠΕΡΠ ; CУ = <LА 2 , где ( )2L – множество всех булевых функций (БФ). АП – клон, который, в частности, представляет собой составную компоненту различных алгоритмических клонов, ассоциированных с современными методами программирования [14, 15]. Алгебры алгоритмов, принадлежащие соответствующим клонам и представляющие практический инте- рес, подлежат дальнейшим исследованиям в связи с решением для них проблемы аксиоматизации, построе- нием теории нормальных форм, их минимизации и др. ISSN 1028-9763. Математичні машини і системи, 2003, № 2 65 В формализованном виде под алгоритмическим клоном будем понимать многоосновную систему: >ΠΕΡΛΚ )}; CУL( = <{OА 2, , где O – операторные или объектные основы, состоящие из множеств неинтерпретированных схем, специфицирующих соответствующие алгоритмические компоненты. Выбор СО АЛК определяет систему алгоритмических конструкций, присущую тому или иному методу конструирования алгоритмов и программ. Так, для метода структурного программирования одну из подобных систем составля- ют конструкции, входящие в сигнатуру операций алгебры Дейкстры (АД) [5]. Замыкание указанной системы алгоритмических конструкций по суперпозиции порождает алгоритмический клон ( ){ }>ΠΕΡ=< CУLACCKД ;2, , где АСС – алгебра структурных неинтерпретированных схем (оператор- ная основа КД); )L( 2 – АП (логическая основа КД). СО КД адекватны сигнатурам операций различных ал- гебр алгоритмов, подобных АД. Сигнатуры операций этих алгебр могут содержать разнообразные цикличе- ские структуры, а также другие средства взаимодействия между операторами, объектами и условиями. (В частности, сигнатура систем алгоритмических алгебр (САА) и их расширений – модифицированных САА (САА- М) содержит операции, ориентированные на формализацию последовательных и параллельных вычислений (табл. 1).) Суперпозиции операций, входящих в сигнатуру САА-М, специфицирующие асинхронные оператор- ные взаимодействия, называются параллельными регулярными схемами (ПРС). К конструкциям САА-М, ориентированным на асинхронные параллельные вычисления, относится асин- хронная дизъюнкция BA ∨& – бинарная операция, состоящая в параллельном выполнении операторов Α и Β на различных подструктурах операционной структуры (раздел 3). При этом синхронизация параллельных ветвей осуществляется с помощью контрольных точек и зависящих от них синхронизаторов [16]. Контрольные точки представляют собой фиксированные позиции между операторами в схеме. С каждой контрольной точ- кой Τ ассоциировано условие u , ложное до тех пор, пока процесс вычислений не достиг точки Τ , истинное с момента достижения данной точки и не определенное при наличии аварийных остановок на пути, ведущем к точке Τ данной схемы. Условие u называется условием синхронизации, ассоциированным с точкой Τ , кото- рая обозначается T(u) . Синхронизатор S(u) , установленный в некотором месте ПРС, осуществляет задерж- ку вычислений в данном месте схемы вплоть до момента, когда его условие синхронизации u (сопряженное с прохождением соответствующих контрольных точек) станет истинным. Пример 1. Посредством суперпозиции перечисленных в табл. 1 элементарных конструкций может быть построена ПРС С1 , которая специфицирует структуру алгоритмов, принадлежащих некоторому семейст- ву и состоящих в совместном выполнении двух параллельных ветвей, осуществляющих циклическую обра- ботку данных: ] B} * D {[u] A} * C ::= {[uC 211 ∨& , где 21, uu – логические, а DCBA ,,, – операторные переменные. Схема 1C служит примером неинтерпретированной схемы. Переход от неинтерпретированных схем к алгоритмам связан с интерпретацией операторных и логических переменных, входящих в неинтерпретиро- ванную схему. Построение интерпретаций ассоциировано с концепцией разметки обрабатываемых данных [14], которая состоит во введении специальных маркеров, фиксирующих определенные позиции в последова- тельностях данных, и указателей, перемещающихся по обрабатываемым последовательностям в указанных направлениях. На размеченных последовательностях данных определяются интерпретации операторных и логических переменных, входящих в схемы. Пример 2. Рассмотрим размеченную последовательность данных, подлежащих обработке: KУ ... a a aD: H У n 2211 , где Н и К – маркеры, отмечающие начало и, соответственно, конец последова- ISSN 1028-9763. Математичні машини і системи, 2003, № 2 66 тельности Д; ia – элемент данных; 21, УУ – указатели. Определим на Д следующие предикаты и операто- ры: предикат 021 ) = , Уd(У , истинный в момент слияния указателей 1У и 2У ; предикат k) , Уd(У ≤21 , истинный в момент, когда расстояние между указателями не превосходит коэффициента синхронизации k (положительное целое число). Коэффициент k используется для предотвращения наползания друг на дру- га встречных направлений обработки. К операторам относятся: контрольная точка )) = , УT(d(У 021 ; син- хронизатор )) = , УS(d(У 021 , реализующий ожидание момента завершения вычислений по первой ветви. Таблица 1. Основные операции, входящие в сигнатуру модифицированных систем алгоритмических алгебр (САА-М) Тип Название операции Форма аналитическая естественно- лингвистическая Графовая Логические Конъюнкция ' uu ∧ 'u . u u И u' Дизъюнкция ' uu ∨ ' uu + u ИЛИ u' Отрицание u НЕ(u) Прогнозирование (левое умноже- ние условия на оператор) uA • ПОСЛЕ A УСЛОВИЕ u Операторные Композиция A * B A ЗАТЕМ B Альтернатива ([u] A, B) ЕСЛИ u ТО A ИНАЧЕ B Цикл {[u] A} ПОКА НЕ u ЦИКЛ A Фильтр u ФИЛЬТР(u) Асинхронная дизъюнкция BA ∨& A ПАРАЛЛЕЛЬНО B ISSN 1028-9763. Математичні машини і системи, 2003, № 2 67 Контрольная точка T(u) Ё u Синхронизатор S(u) ЖДАТЬ(u) Введем следующую частичную интерпретацию переменных схемы 1C : 0211 ) = , У d(Уu → ; k) , У d(Уu ≤→ 212 ; )) = , У T(d(УC 021⇒ ; )) = , У S(d(УD 021⇒ , где → и ⇒ обозначают интерпретацию логических, соответственно, операторных, переменных в схемах. В результате указанной ин- терпретации схемы 1C получим следующую частично-интерпретированную схему: .000 212121212 )) = , У(d(У k] B} * S) , У {[d(У) ) = , У(У] A} * T(d) = , У ::= {[d(УC ≤∨& Приведенная ПРС представляет класс алгоритмов, ориентированных на двустороннюю динамическую мультиобработку [16]. При динамической мультиобработке разбиения данных между ветвями могут меняться в зависимости от динамики обработки, в отличие от статической, при которой указанные разбиения остаются неизменными на протяжении всего процесса вычислений. Условие синхронизации 021 ) = , Уd(У является примером замкнутого условия синхронизации [16]. Такие условия, став истинными в некоторый момент вычислений, продолжают быть истинными и далее, в от- личие от локально замкнутых условий, обеспечивающих взаимодействие параллельных ветвей в циклах. Отметим, что приведенные ПРС можно обобщить на случай асинхронной конвейерной мультиобра- ботки [16]. Такая мультиобработка состоит в одновременном применении упорядоченной последовательности в общем случае разнотипных операторов n, ..., A, AA 21 к потоку перерабатываемых данных ), ..., m, mM = (m –21 , так что результат обработки i-го оператора поступает на вход ( )1+i --му ( 121 , ..., n-, i = ). Передача данных от оператора к оператору может осуществляться с помощью очереди. При двусторонней конвейерной обработке левостороннюю и правостороннюю обработку могут выполнять не- сколько параллельных ветвей. Асинхронные алгоритмы в современных языках программирования могут быть реализованы с помощью многопоточных программ (раздел 3). В цикле работ, представленном в [15], [5], отражены следующие основные результаты для итеративных алгоритмических клонов, соответствующих известным семействам алгебр алгоритмов: − исследованные клоны – алгебры континуального типа; − каждый из клонов включает бесконечно порожденные подалгебры (с бесконечным базисом и без базиса); − построена поверхность КД и его обобщений, имеющих q выходов из цикла ( , ..., q = 21 ); − описана совокупность максимальных подалгебр клона КЯ, канонический представитель которого – алгебра Янова; − установлено, что КЯ – теоретико-множественный предел исследованных обобщений КД; − описана совокупность максимальных подалгебр для клона КГ, представителем которого служит ал- гебра Глушкова, и ассоциированной с ним логической компоненты с операцией прогнозирования. ISSN 1028-9763. Математичні машини і системи, 2003, № 2 68 Полученные результаты могут быть распространены на алгоритмические клоны граф-схем и их обоб- щения, рассмотренные в [5]. Граф-схемные представления неинтерпретированной и частично- интерпретированной схем из примеров 1 и 2 приведены на рис. 1 и 2. Рис. 1. Граф-схемное представление неинтерпретированной схемы из примера 1 Рис. 2. Граф-схемное представление частично-интерпретированной схемы из примера 2 На основе проведенного исследования установлены критерии функциональной полноты и выразимости схем для рассмотренных клонов. Получение таких критериев имеет важное практическое значение для реали- зации инструментальных (программных и аппаратных) средств проектирования и синтеза алгоритмов и про- грамм, а также их классов, ассоциированных с актуальными предметными областями [5, 17, 18]. Отметим взаимодополнительность полученных результатов по отношению к исследованиям по проблеме полноты для известных алгоритмических алгебр, в частности, для примитивных программных алгебр [19]. 3. Концепция абстрактно-автоматной модели управления В данном разделе рассматривается ряд результатов, относящихся к абстрактно-автоматным моделям управ- ления последовательными и параллельными процессами. Приведены приложения развиваемого алгебро- автоматного подхода к проектированию параллельных программ легковесными средствами, характерными для объектно-ориентированных языков программирования, подобных Java. Особенность функционирования достаточно сложной кибернетической системы, состоящей из управ- ляющего – U и операционного – O, автоматов, заключается в наличии, наряду с прямым, обратного канала связи между упомянутыми автоматными структурами (рис. 3). По прямому каналу (от U к O) выполняются операторы A – действия для целенаправленного изменения состояния автомата O (объекта, подлежащего управлению); в то же время, управляющий автомат U по каналу обратной связи (справа налево) получает информацию о текущем состоянии автомата O. Эта информация поступает в виде значений логических усло- ISSN 1028-9763. Математичні машини і системи, 2003, № 2 69 вий u, с требуемой степенью полноты отражающих состояние объекта O. При этом автомат U – конечен, он, как принято считать, имеет конечное число состояний; тогда как автомат O – бесконечен, в силу, обычно, вы- сокой степени сложности объекта O. Рис. 3. Абстрактно-автоматная модель управления В соответствии с приведенным описанием итеративного взаимодействия с O, управляющий автомат U либо переходит в заключительное состояние, завершая процесс управления, либо продолжает взаимодейст- вие с объектом O. В литературе управляющий автомат часто называется дискретным преобразователем (ДП) [20]. Следует отметить, что с рассмотренной схемой взаимодействия автоматов U и O связан аппарат систем алгоритмических алгебр (САА) Глушкова [13] и их модификаций (табл. 1). В рамках указанной абстрактно- автоматной модели и теории САА получены следующие фундаментальные результаты. Теорема 1. Произвольно выбранная кибернетическая система представима в форме рассмотренной абстрактно-автоматной модели. Следствие. Замена в ДП функций переходов и выходов недетерминированными отображениями при- водит к моделированию недетерминированных процессов. Отметим, что рассмотренная абстрактно- автоматная модель удачно сочетается с другими, в том числе, динамическими автоматными моделями и обеспечивает возможность многоаспектного интегрированного описания исследуемых процессов. Алгоритмы функционирования ДП в приведенной концепции абстрактно-автоматной модели описыва- ются посредством регулярных схем (РС) – операторных формул в САА. Теорема 2 [3]. Любой алгоритм (в частности, программа или микропрограмма) представим функцио- нально эквивалентным РС в САА. Действительно, посредством РС описывается поведение ДП, который в результате анализа получен- ных по каналу обратной связи наборов значений логических условий (характеризующих текущее состояние операционного автомата) вырабатывает операторы, поступающие по прямому каналу на вход операционного автомата и целевым образом изменяющие его состояние. Следствие 1. Поведение ДП произвольно выбранной абстрактно-автоматной модели динамической системы описывается посредством РС в САА. Следствие 2. В рамках САА осуществимо прогнозирование процесса управления, представленного ДП, а также обоснование проверки правильности его функционирования. Справедливость данного следствия вытекает из наличия в сигнатуре САА операции прогнозирования, а также из двухосновности данной системы. Алгебраический метод, как известно, базируется на описании объектов посредством формул, состав- ленных из операций – конструкций, удовлетворяющих фундаментальным законам, представленным, напри- мер, в виде равенств (тождеств, соотношений и т.д.). На основании упомянутых законов осуществляются пре- образования формул с целью их оптимизации по тем или иным критериям, приведения к стандартным пред- ставлениям (полиномы, нормальные формы и т.д.), решения проблемы эквивалентности процессов и т. п. Теорема 3. Посредством применения совокупности оптимизирующих преобразований, развитой в САА, осуществима оптимизация по выбранным критериям РС – аналитического описания алгоритмов функ- ционирования ДП (с прогнозированием процесса вычислений). ISSN 1028-9763. Математичні машини і системи, 2003, № 2 70 Теорема 4. Наряду с аналитическими (формульными) описаниями алгоритмов функционирования ДП посредством РС, эти алгоритмы представлены и визуально в виде структурных граф-схем в соответствующих системах, изоморфных САА. Аналитические описания алгоритмов – РС в САА, положены в основу САА-схем – многоуровневых ал- горитмических проектов, оформленных в естественно-лингвистическом виде (например, на украинском или русском языках), доступном для широкого круга пользователей (не только математикам или программистам). Теорема 5. По САА-схемам могут быть синтезированы (собраны) вручную или автоматизированным способом (с применением специально разработанного инструментария) программные модели-прототипы со- ответствующих АРМов и автоматизированных систем, реализованные в современных объектно- ориентированных средах. Полученные результаты изложены в [4, 13]. Следует подчеркнуть, что с ДП неструктурного типа могут быть связаны алгоритмические алгебры, относящиеся к клону КЯ и его обобщениям (раздел 2). Отметим, что взаимодействие ДП с объектом O может носить и распределенный характер. При этом подлежащая обработке информация размещена по сети ДП, обеспечивающих систематический контроль и реакцию на изменения в состоянии среды. Тем самым представляют интерес мультипроцессоры, а также ас- социированные с ними алгебро-алгоритмические системы, подобные модифицированным САА, для описания параллельных процессов, функционирующих в реальное время. Взаимодействие ДП с объектом O может быть описано в терминах теории агентов и сред [9–11]. Ос- новным понятием данной теории является понятие действия, которое изменяет состояние окружающей среды и выполняется агентом [9]. Для представления агентов и сред используется понятие транзиционной системы (ТС) [11]. ТС над множеством действий Α определяется как множество S состояний вместе с отношением переходов S A S T ××⊂ . Элемент T) (s, a, s ∈' означает, что система S переходит из состояния s в состояние 's , выполняя действие a. Последовательности переходов ТС могут быть конечными или беско- нечными. В ТС также выделяют множество состояний успешного завершения функционирования системы и множество неопределенных или расходящихся состояний. Последние могут возникнуть, например, в случае, когда отношение переходов определяется с помощью алгоритма, содержащего бесконечные циклы. Транзи- ционные системы обычно бывают недетерминированными. Примерами ТС могут служить компоненты компь- ютерных систем, программы, объекты реального мира, рассматриваемые во взаимодействии один с другим и со средой, в которой они существуют. Агентом называется ТС, поведение которой отождествляется с ее со- стоянием [11]. Среда является специальным типом агента, в который могут быть погружены другие агенты. Погружение агента в некоторую среду приводит к ее преобразованию в новую среду. Примером среды может служить сервер в компьютерной сети или программная система, которая обрабатывает запросы, рассматри- ваемые как действия программ (агентов) [9]. Таким образом, понятие агента является обобщением ДП, а понятие среды – объекта O. ДП может быть определен как агент, реализующий операции из основы клона, соответствующего выбранному методу программирования. При этом, наряду с ДП, зависящими от конечного числа состояний, могут быть использо- ваны и ДП над внутренней памятью (магазины, стеки, очереди и их различные сочетания [13, 21, 22]). Сово- купность взаимодействующих ДП (или терминалов [16]) вместе с операционной структурой, каждая из под- структур которой ассоциирована с соответствующим ДП, представляет собой среду (в случае распределен- ной обработки). ДП, осуществляющие асинхронную обработку данных, в таких языках программирования, как Java [6], ++C могут быть реализованы с помощью потоков (называемых также подпроцессами или легковесными процессами) (threads). Поток в многопоточных операционных системах является наименьшей единицей вы- полнения. Для каждого процесса ОС создает один главный поток, который является потоком выполняющихся ISSN 1028-9763. Математичні машини і системи, 2003, № 2 71 по очереди команд центрального процессора. При необходимости главный поток может создавать другие по- токи, пользуясь для этого программным интерфейсом ОС. Все потоки, созданные процессом, выполняются в адресном пространстве этого процесса и имеют доступ к его ресурсам. Если процесс создал несколько пото- ков, то все они выполняются параллельно, причем время центрального процессора (или нескольких цен- тральных процессоров в мультипроцессорных системах) распределяется между этими потоками. Каждому потоку дается определенный интервал времени, в течение которого он находится в активном состоянии. Язык Java предоставляет возможность реализации легковесных процессов с помощью класса Thread [6]. Данный класс инкапсулирует все средства, необходимые для создания потоков, управления их состояни- ем и синхронизации. Для организации многопоточных программ существуют две возможности: первая пред- полагает создание подкласса класса Thread, вторая – создание класса, реализующего интерфейс Runnable. В этих классах переопределяется метод run, содержащий код, предназначенный для выполнения в рамках от- дельного потока. Примером многопоточных программ являются сервлеты – программы на языке Java, выпол- няющиеся в рамках серверов, способные обрабатывать сложные клиентские запросы и динамически генери- ровать ответы на них. Каждое обращение клиента к серверу приводит к созданию нового потока, в котором обрабатывается запрос [6]. Потоки, работающие параллельно в многопоточной системе, могут обращаться одновременно к одним и тем же объектам в памяти, что может привести к неправильной работе программ. Разрешением этой про- блемы является синхронизация потоков. Так, в Java используется синхронизация на основе мониторов Хоара, при которой в каждый конкретный момент времени доступ к совместно используемым ресурсам предоставля- ется только одному из потоков. Средства синхронизации САА-М (раздел 2) могут быть реализованы, например, с помощью обмена со- общениями между потоками. В частности, Java предоставляет механизм общения между потоками, основан- ный на методах wait, notify и notifyAll [6]. Метод wait позволяет перевести поток в состояние ожидания, в кото- ром он будет находиться до тех пор, пока другой поток не вызовет для него метод notify или notifyAll. Синтез параллельных программ на языке Java по САА-схемам алгоритмов позволяет осуществлять конструктор синтаксически правильных программ, описанный в [23]. Данный инструментарий был апробиро- ван на задачах символьной обработки. Приведем примеры алгоритмов асинхронной обработки, которые могут быть реализованы с помощью перечисленных средств Java. Пример 3. Рассмотрим алгоритм двусторонней асинхронной сортировки массива ЧЕЛНОК><, полу- ченный путем распараллеливания маятниковой челночной сортировки [5]. Начальная разметка обрабатываемого массива имеет следующий вид: K УУ ... a a a УМ: H У n 432112 . В основу алгоритма положены схемы ЧЕЛН> и ЧЕЛН< левосторонней и правосторонней челночных сортировок массива. ЧЕЛН> осуществляет поиск слева направо неупорядоченно- го элемента rl > по указателю 1У и установку его на место левее 1У согласно челночной стратегии обра- ботки. При этом ЧЕЛН< осуществляет поиск справа налево неупорядоченного элемента rl > по указа- телю 3У и устанавливает его на место справа от 3У . При сближении указателей на расстояние, не превы- шающее коэффициента синхронизации 1=k , второй процесс переходит в состояние ожидания, продол- жающееся до тех пор, пока левосторонний процесс не завершит обработку. Функционирование левосторонне- го процесса завершается в момент слияния указателей 1У и 3У , фиксирующих слева от 1У и справа от 3У отсортированные каждым процессом подмассивы. ПРС алгоритма будет следующей: ЧЕЛНОК>< ЧЕЛН>} * T(d(У , У ) = ) {[d(У , У ) k]1 3 1 30 &∨ ≤ ЧЕЛН<}* S(d(У , У ) = )1 3 0 ; ISSN 1028-9763. Математичні машини і системи, 2003, № 2 72 ЧЕЛН> ::= {[(l > r| У ) (d(У , У ) = )] P(У ) * P(У )} * {[l < r| У ] ТРАНСП(l, r| У ) * L(У )} * УСТ(У , У )1 1 3 1 2 2 2 2 2 10∨ ; ЧЕЛН< ::= {[(l > r| У ) (d(У , У ) = )] L(У ) * L(У )} * {[l < r| У ] ТРАНСП(l, r| У ) * P(У )} * УСТ(У , У )3 1 3 3 4 4 4 4 4 30∨ , где iУr|>l – условие, истинное, если указанное отношение выполняется для пары элементов, расположен- ных соответственно слева и справа от указателя iУ ; LP, – операторы сдвига указателей на один элемент вправо и влево соответственно; )(l, r| УCТ iΠΡΑΗ – оператор перестановки элементов слева и справа от указателя iУ ; ), УУCТ(У ji – установка указателя i У в позицию, в которой находится указатель jУ ( 421 , ..., , i, j = ). Отметим, что посредством замены структур данных и переориентации алгоритмов сортировки могут быть получены соответствующие алгоритмы поиска [5, 24]. Пример 4. Приведем алгоритм асинхронного поиска применительно к задаче поиска документов в Web [25]. Поисковая система, в которой реализуется рассматриваемый алгоритм, состоит из двух частей: про- граммы-индексатора, осуществляющей подготовку информации для последующего поиска, и программы, не- посредственно осуществляющей поиск и выдачу результатов обработки запросов пользователей. Индексатор просматривает Web-документы и сохраняет о них информацию в двух файлах. Первый файл содержит пронумерованный список всех просмотренных документов с указанием их места расположе- ния (адреса), названия, размера, даты создания, описания (фразы из документа). Во втором (индексном) файле хранятся записи о словах, содержащихся в документах, с указанием номера документа и количества вхождений слова в данный документ. Программа поиска ищет в индексном файле каждое слово из запроса пользователя, составляет и об- рабатывает список документов, удовлетворяющих запросу, и выводит их на экран. При этом может осуществ- ляться параллельная обработка нескольких запросов. Опишем алгоритм параллельного поиска документов по ключевым словам, заданным в запросах. По- иск производится в индексном файле ΚΠΛ У ... a aa: Ф n u 221 , где ΠΛ и Κ – маркеры, отмечающие со- ответственно начало и конец файла; ai – запись, содержащая информацию об i-м слове. Поиск записей в файле uФ осуществляется по массиву запросов ⊕s21 ... πππМ‚: н , где каждый запрос 2i E: Д →π представляет собой предикат, определенный на множестве Д элементов файла uФ и принимающий значе- ния из множества }, = {E 10 2 (0 – ложь, 1 – истина); Η и ⊕ – маркеры. Если 1i =(a)π для некоторого элемента Дa ∈ , то будем говорить, что элемент a удовлетворяет запросу iπ . Схема алгоритма состоит из s параллельных ветвей iΠ , каждая из которых реализует последова- тельный поиск записей, удовлетворяющих i-му запросу: i s i = ппп ::= ∨& 1 , где ( *)}P(У*] A, E)(, d(У{[*), У УУ ::п iiii [ λδ Κ∨ΠΛΤ= B, E)*)s] S(=([i*T(*] E, NOT)* ([ ... ) 1-s21i ααααϕ ∧∧∧ , ISSN 1028-9763. Математичні машини і системи, 2003, № 2 73 где δ – условие, истинное, если в процессе поиска в файле uФ уже были найдены записи для всех слов из запроса; λ – условие, истинное, если элемент файла uФ , обозреваемый указателем iУ (расположенный непосредственно справа от него), удовлетворяет i-му запросу; ϕ – условие, истинное, если в процессе ска- нирования по файлу уже была найдена по крайней мере одна запись, удовлетворяющая запросу; А – опера- тор занесения в список записей о документах, содержащих слово, обозреваемое указателем iУ ; NOT – опе- ратор реакции на отсутствие в файле uФ удовлетворяющих запросу записей; )T( iα – контрольная точка; iα – условие синхронизации; )S( 1-s21 ... ααα ∧∧∧ – синхронизатор, выполняющийся в s-й ветви и реа- лизующий ожидание момента завершения вычислений в ветвях 121 , ..., s-, i = ; Β – оператор вывода спи- ска документов, удовлетворяющих запросам. Суть РС iΠ , обрабатывающей i-й запрос, состоит в сканировании указателя iУ в направлении слева направо по файлу uФ вплоть до нахождения записей обо всех словах из запроса или достижения iУ маркера Κ . При обнаружении элемента, удовлетворяющего запросу, выполняется оператор Α со сдвигом указателя на запись вправо с продолжением процесса сканирования в поиске остальных вхождений слов, удовлетво- ряющих запросу. Если таковые в файле не найдены, то выполняется оператор NOT, сигнализирующий об их отсутствии. По завершении функционирования в s -й ветви осуществляется синхронизация – ожидание за- вершения вычислений в остальных ветвях. После чего выводится список документов, удовлетворяющих за- просам. 4. Объектно-ориентированное проектирование предметных областей и баз алгоритмических знаний В данном разделе предлагается подход к проектированию предметных областей и баз алгоритмических зна- ний на основе понятия алгебры алгоритмики и использования ПИК-технологии. В основу предлагаемых алгебраических средств проектирования алгоритмических знаний из различных предметных областей положена концепция алгебры алгоритмики. Эта алгебра представляет собой двухуров- невую систему: − в основу верхнего уровня положена теория клонов. В зависимости от поставленной задачи, выбран- ного метода разработки классов алгоритмов, технологической среды программирования осуществляется по- строение и исследование требуемой алгебры алгоритмов (АА) из семейства, специфицированного соответст- вующим клоном. Сигнатура построенной АА удовлетворяет теореме о функциональной полноте для данного клона, являясь, тем самым, его СО. Построенная АА может быть исследована с привлечением соответствую- щего алгебраического аппарата (раздел 2); − на нижнем уровне (интерпретационном) осуществляется построение вполне конкретной прикладной алгебры алгоритмов (ПАА), ориентированной на представление алгоритмических знаний о выбранной пред- метной области. Схема образования ПАА базируется на интерпретации элементарных операторных и преди- катных переменных для АА, построенной на верхнем уровне. В свою очередь, разработка совокупностей ин- терпретаций сопряжена с построением многоосновных (многосортных) алгебраических систем, ассоцииро- ванных с АТД, механизмами классификации и наследования, характерными для объектно-ориентированного подхода, положенного в основу современных и перспективных информационных технологий [5, 7]. Следует отметить универсальность разработанного формализма – возможность его применения для проектирования самых различных алгоритмических моделей предметных областей. ISSN 1028-9763. Математичні машини і системи, 2003, № 2 74 Полученные в [5] результаты отражают сущность процесса представления алгоритмических знаний, апробированного при построении классификационного графа, который характеризует взаимосвязи между различными стратегиями (неинтерпретированными и частично интерпретированными схемами алгоритмов). Вершинам графа соответствуют стратегии, характеризующие классы алгоритмов (интерпретированных схем), а дугам – переходы от одних стратегий к другим посредством соответствующих метаправил конструирования. В [5] аппарат алгебры алгоритмов апробирован для решения задач символьной обработки (сортировка, поиск в многоуровневых файлах, языковое процессирование). Для представления алгоритмических знаний может быть также применена ПИК-технология повторного использования компонент [26]. Повторно используемыми компонентами (ПИК) называются элементы знаний о прошлом опыте разработки систем программирования, которые могут быть использованы другими разработ- чиками и адаптированы для создания новых систем. Компоненты конструируются как абстракции, которые имеют две части – видимую и скрытую. Видимая часть является спецификацией тех знаний, которые необхо- димы для использования ПИК. Скрытая часть содержит детали реализации компонент, невидимые на уровне их спецификации. Аппарат алгебры алгоритмики и, в частности, описание алгоритмических знаний посредст- вом схем представляют собой формализм, ориентированный на ПИК-технологию построения алгоритмиче- ских знаний. Компоненты для представления специализированных знаний из различных предметных областей предлагается называть капсулами знаний (КЗ). База знаний, содержащая КЗ, ориентированные на решение задач асинхронной символьной обработки [24, 27], может содержать компоненты следующих типов: 1) компоненты, соответствующие стратегиям обработки. При этом на нижнем уровне описываются опе- раторные и предикатные средства, входящие в сигнатуру САА-М. Такое описание включает их представление в естественно-лингвистической, алгебраической и визуализированной форме (табл. 1), а также отображение в целевой язык программирования. Далее приводятся неинтерпретированные схемы – суперпозиции упомяну- тых сигнатурных операций, описывающие классы алгоритмов асинхронной обработки. Примером такого ком- понента служит приведенная в примере 1 неинтерпретированная схема – суперпозиция асинхронной дизъ- юнкции, композиции и цикла, представляющая собой стратегию двусторонней асинхронной обработки. Компо- ненты, представляющие частично интерпретированные схемы, содержат суперпозиции неинтерпретирован- ных схем, элементарных операторов и предикатов, общих для решения задач символьной обработки (сдвиги указателей, их установка в требуемые места размеченных данных, проверка достижения указателями марке- ров и др.). Так, схема из примера 2 является суперпозицией неинтерпретированной схемы из примера 1, а также элементарных предикатов проверки расстояния между указателями и элементарных операторов – кон- трольной точки и синхронизатора. Данный компонент представляет собой стратегию динамической двусто- ронней мультиобработки. База знаний может быть пополнена стратегиями, которые классифицируются в за- висимости от количества параллельных ветвей, обрабатывающих данные; статического или динамического распределения данных между функционирующими параллельными ветвями [16]; стратегий, используемых при последовательной обработке в каждой из ветвей: челночной, пузырьковой, Шелла и др. [5]; 2) компоненты, соответствующие алгоритмам параллельной сортировки и поиска. Данные элементы базы знаний представляют собой описание интерпретированных схем, полученных из стратегий и содержа- щих базовые предикаты и операторы, специфичные для решения указанных задач (перестановка неупорядо- ченной пары элементов, обработка записи в файле и т. п.). Помимо предметной области, к которой они отно- сятся, алгоритмы могут быть классифицированы в зависимости от стратегий асинхронной символьной обра- ботки, которые они используют. Такими КЗ являются схемы алгоритмов сортировки и поиска, приведенные в примерах 3 и 4. В частности, алгоритм двусторонней асинхронной сортировки получен на основе стратегии из примера 2, а также стратегии последовательной челночной обработки, которая используется в каждой из па- раллельных ветвей. ISSN 1028-9763. Математичні машини і системи, 2003, № 2 75 Описание базовых элементов на целевом объектно-ориентированном языке может храниться в про- граммных компонентах – классах, инкапсулирующих данные и средства доступа к ним, – методы, реализую- щие операторы и предикаты схем. Например, в случае задач сортировки в таком классе описывается обраба- тываемый массив, переменные для представления указателей и маркеров. Методы реализуют обработку данных: сдвиги указателей, перестановку элементов, проверку упорядоченности элементов и т.д. В языке Java подобные классы могут быть реализованы при использовании JavaBeans [6]. JavaBean представляет собой совокупность, состоящую из одного или более классов Java, которая служит в качестве компонента по- вторного использования. Пример 5. В табл. 2 приведены примеры описания в базе знаний элементарных предикатов и операто- ров для задач сортировки. Естественно-лингвистическая и аналитическая форма описания базисного элемен- та содержит в себе имена формальных параметров, обрамленные круглыми скобками. Фактические парамет- ры, задаваемые в САА-схемах, заменяют при синтезе программы соответствующие формальные параметры в тексте реализации базисного понятия на языке программирования (Java). Признаком формального параметра в реализации служит символ "%", за которым следует порядковый номер параметра в тексте базисного опе- ратора или предиката. Например, в базисном операторе "Сдвинуть У(k) на (n) вправо" присутствуют два па- раметра: номер указателя и величина сдвига, значения которых будут подставлены вместо соответствующих формальных параметров в реализации этого оператора, который имеет вид: s.mover(%1, %2) , где s – экзем- пляр класса, описывающего данные для задач сортировки и средства доступа к ним; mover – метод данного класса, осуществляющий сдвиг указателя вправо на указанное количество позиций. Реализации остальных базисных элементов, приведенных в таблице, также представляют собой вызовы методов. Таблица 2. Примеры описания в базе знаний элементарных операторов и предикатов для задач сортировки Тип Естественно-лингвистическая форма Аналитическая форма Реализация на языке Java Операторы "Сдвинуть У(k) на (n) вправо" P(У(k), (n)) s.mover(%1, %2) "Переставить l, r по У(k)" ТРАНСП(l, r| У(k)) s. transp(%1) "Установить У(i) на У(j)" УСТ(У(i), У(j)) s.place(%1, s.getpos(%2)) … … … Предикаты 'l > r по У(k)' l r| У(k)> s. larger(%1) 'Расстояние между У(i) и У(j) равно (k)' d(У(i), У(j)) (k)= s.mover(%1, %2, %3) … … … 5. Заключение В работе получены новые результаты в рамках интеграции аппарата алгебры алгоритмики и современных объектно-ориентированных средств. Подчеркнем основные преимущества предлагаемого подхода, опреде- ляющие перспективы дальнейших исследований: − универсальность и возможность создания баз знаний, связанных с решением задач, относящихся к актуальным и важным предметным областям различной ориентации и назначения; − сочетание и взаимосвязь аналитических, естественно-лингвистических и визуализированных форм представления алгоритмических проектов направлена на удобство восприятия, обеспечение их правильности, достижение необходимых критериев качества (требуемая память, быстродействие и т.д.), модифицируемость синтезируемых программ в процессе их эксплуатации и т. п.; ISSN 1028-9763. Математичні машини і системи, 2003, № 2 76 − проекты алгоритмов (последовательных и параллельных) инвариантны к выбранному императив- ному языку программирования, могут рассматриваться в качестве документации на создаваемый программ- ный продукт и допускают сборку программ на различных, в том числе и объектно-ориентированных, языках программирования; − развиваемые инструментальные средства адаптируемы к различным операционным платформам для обеспечения автоматизации программирования в этих платформах [28–30]; − интеграция алгебраической алгоритмики с распространенными средствами проектирования и под- держивающими их инструментами синтеза программ (UML и его инструментарий) нацелена на дальнейшее привлечение аппарата алгебры и логики к практике современного программирования и послужит существен- ным стимулом развития компьютерной науки. СПИСОК ЛИТЕРАТУРЫ 1. Ноден П., Китте К. Алгебраическая алгоритмика (с упражнениями и решениями). – М.: Мир, 1999. – 720 c. 2. Калужнин Л. А. Об алгоритмизации математических задач // Проблемы кибернетики. – 1959. – Вып. 2. – С. 51 – 69. 3. Глушков В. М. Теория автоматов и формальные преобразования микропрограмм // Кибернетика. – 1965. – № 5. – C. 1 – 10. 4. Цейтлин Г. Е. Системы алгоритмических алгебр и автоматизация программирования // Проблемы программирования. – 2002. – № 1 – 2. – С. 15 – 25. 5. Цейтлин Г. Е. Введение в алгоритмику. – Киев: Сфера, 1998. – 310 с. 6. Холл М., Браун Л. Программирование для Web. Библиотека профессионала: Пер. с англ. – М.: Вильямс, 2002. – 1264 с. 7. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++: Пер. с англ. – 2-е изд.– М.: "Издательство Бином", СПб.: Невский диалект, 2000. – 560 с. 8. Боггс У., Боггс М. UML и Rational Rose. – М.: ЛОРИ, 2000. – 582 с. 9. Letichevsky A. A., Gilbert D. R. A general theory of action languages // Cybernetics and Systems Analysis. – 1998. – N1. – P. 16– 36. 10. Letichevsky A. A., Gilbert D. R. Agents and environments // In 1st International scientific and practical conference on program- ming, Proc. 2 – 4 September, 1998. – Kiev: Glushkov Institute of Cybernetics, National Academy of Sciences of Ukraine, 1998. – P. 32 – 44. 11. Капитонова Ю. В., Летичевский А. А., Волков В. А. Дедуктивные средства системы алгебраического программирования // Кибернетика и системный анализ. – 2000. – № 1. – С. 17 – 34. 12. Кон П. Универсальная алгебра. – М.: Мир, 1968. – 341 с. 13. Глушков В. М., Цейтлин Г. Е., Ющенко Е. Л. Алгебра. Языки. Программирование. – 3-е изд. – Киев: Наукова думка, 1989. – 340 с. 14. Цейтлін Г. О. Алгебра логiки та конструювання програм. – Київ: Наукова думка, 1994. – 90 с. 15. Цейтлин Г. Е. Проблема функциональной полноты в итеративных мета-алгебрах // Кибернетика и системный анализ. – 1998. – № 2. – С. 28 – 45. 16. Глушков В. М., Цейтлин Г. Е., Ющенко Е. Л. Методы символьной мультиобработки. – Киев: Наукова думка, 1980. – 252с. 17. Цейтлин Г. Е., Амонс А. А., Головин О. В., Зубцов А. Ю. Интегрированный инструментарий проектирования и синтеза классов алгоритмов и программ // Кибернетика и системный анализ. – 2000. – № 3. – С. 165 – 170. 18. Цейтлин Г. Е., Теленик С. Ф., Амонс А. А. Алгебро-логическая формализация в объектно-ориентированных технологиях // Проблемы программирования. – 2002. – № 1– 2. – С. 136 – 146. 19. Буй Д. Б., Редько В. Н. Примитивные программные алгебры вычислимых функций // Кибернетика. – 1987. – № 3. – С. 68 – 74. 20. Глушков В. М., Летичевский А. А. Теория дискретных преобразователей // Избранные вопросы алгебры и логики. – Но- восибирск: Наука, 1973. – С. 5 – 39. 21. Ющенко Е. Л., Цейтлин Г. Е., Галушка А. В. Алгебро-грамматические спецификации и синтез структурированных схем программ // Кибернетика. – 1989. – № 6. – С. 5 – 16. 22. Анисимов А. В. Рекурсивные преобразователи информации. – Киев: Высшая школа, 1987. – 231 с. 23. Яяценко Е. А. Конструирование параллельных объектно-ориентированных программ // Проблемы программирования. – 2002. – № 1– 2. – С. 188 – 197. 24. Цейтлин Г. Е. Поиск и сортировка: классификация, трансформация, синтез. I, II // Автоматика и телемеханика. – 1992. – № 4. – С. 147 – 154; № 5. – С. 156 – 165. 25. Тихонов В. Поисковые системы в сети Интернет. – http://www.citforum.ru/ internet/search/searchsystems.shtml. 26. Бабенко Л. П., Лаврищева К. М. Основи програмної iнженерiї: Навчальний посiбник. – К.: Т-во "Знання", КОО, 2001. – 269 с. 27. Цейтлин Г. Е. Проектирование алгоритмов параллельной сортировки // Программирование. – 1989. – № 6. – С. 4 – 19. 28. Погорiлий С. Д., Калита Д. М., Захаров О. I. Iнструментальний комплекс синтезу програм в середовищi Delphi за методом багаторiвневого структурного проектування // Вiсник Київського університету. Серiя фiзико-математичнi науки. – 2000. – Вип. 1. – С. 268 – 275. 29. Погорiлий С. Д., Калита Д. М. Оптимiзацiя алгоритмiв маршрутизацiї з використанням систем алгоритмiчних алгебр // УСіМ. – 2000. – № 4. – C. 20 – 30. 30. Погорілий С. Д., Захаров О. І. Створення інструментальних засобів синтезу програм у візуальних середовищах // Про- блемы программирования. – 2002. – № 1. – С. 499 – 505.
id nasplib_isofts_kiev_ua-123456789-723
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
issn 1028-9763
language Russian
last_indexed 2025-12-07T16:26:53Z
publishDate 2003
publisher Інститут проблем математичних машин і систем НАН України
record_format dspace
spelling Цейтлин, Г.Е.
Яценко, Е.А.
2008-06-23T10:10:29Z
2008-06-23T10:10:29Z
2003
Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ / Цейтлин Г.Е., Яценко Е.А. // Математические машины и системы. – 2003. – № 2 . – С. 64 – 76.
1028-9763
https://nasplib.isofts.kiev.ua/handle/123456789/723
681.3
Статья посвящена результатам, полученным в рамках интеграции алгебры алгоритмики и современных объектно-ориентированных средств. Рассмотрены средства построения семейств алгоритмических алгебр, ассоциированных с со-временными методами разработки программ. Приведен обзор результатов по абстрактно-автоматным моделям управле-ния. Предложен также подход к построению баз алгоритмических знаний, базирующийся на аппарате алгебры алгоритмики. Табл.: 2. Ил.: 3. Библиогр.: 30 назв.
Стаття присвячена результатам, отриманих в рамках інтеграції алгебри алгоритміки і сучасних об’єктно-орієнтованих засобів. Розглянуті засоби побудови сімейств алгоритмічних алгебр, асоційованих із сучасними методами розробки програм. Наведено огляд результатів з абстрактно-автоматних моделей керування. Запропоновано також підхід до побудови баз алгоритмічних знань, що грунтується на апараті алгебри алгоритміки. Табл.: 2. Іл.: 3. Библіогр.: 30 назв.
The paper is dedicated to the results got within the framework of integration of algorithmics algebra and contemporary object-oriented means. The means of algorithmic algebras constructing associated with present-day methods of program development are considered. The review of results on abstract-automaton models of control are given. The approach to constructing algorithmic knowledge bases grounded on algorithmics algebra apparatus is also suggested. Tabl.: 2. Figs.: 3. Refs.: 30 titles.
ru
Інститут проблем математичних машин і систем НАН України
Обчислювальні системи
Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
Елементи алгебраїчної алгоритміки і об'єктно-орієнтований синтез паралельних програм
The elements of algebraic algorithmics and object-oriented synthesis of parallel programs
Article
published earlier
spellingShingle Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
Цейтлин, Г.Е.
Яценко, Е.А.
Обчислювальні системи
title Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
title_alt Елементи алгебраїчної алгоритміки і об'єктно-орієнтований синтез паралельних програм
The elements of algebraic algorithmics and object-oriented synthesis of parallel programs
title_full Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
title_fullStr Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
title_full_unstemmed Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
title_short Элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
title_sort элементы алгебраической алгоритмики и объектно-ориентированный синтез параллельных программ
topic Обчислювальні системи
topic_facet Обчислювальні системи
url https://nasplib.isofts.kiev.ua/handle/123456789/723
work_keys_str_mv AT ceitlinge élementyalgebraičeskoialgoritmikiiobʺektnoorientirovannyisintezparallelʹnyhprogramm
AT âcenkoea élementyalgebraičeskoialgoritmikiiobʺektnoorientirovannyisintezparallelʹnyhprogramm
AT ceitlinge elementialgebraíčnoíalgoritmíkiíobêktnooríêntovaniisintezparalelʹnihprogram
AT âcenkoea elementialgebraíčnoíalgoritmíkiíobêktnooríêntovaniisintezparalelʹnihprogram
AT ceitlinge theelementsofalgebraicalgorithmicsandobjectorientedsynthesisofparallelprograms
AT âcenkoea theelementsofalgebraicalgorithmicsandobjectorientedsynthesisofparallelprograms