<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="ru">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">СОГЛАСОВАННОЕ ОПИСАНИЕ АЛГОРИТМОВ В РАМКАХ АЛГЕБРАИЧЕСКОГО АППАРАТА</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">В</forename><forename type="middle">Г</forename><surname>Акуловский</surname></persName>
						</author>
						<author>
							<persName><forename type="first">А</forename><forename type="middle">Е</forename><surname>Дорошенко</surname></persName>
						</author>
						<title level="a" type="main">СОГЛАСОВАННОЕ ОПИСАНИЕ АЛГОРИТМОВ В РАМКАХ АЛГЕБРАИЧЕСКОГО АППАРАТА</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">3EDE447B03EB0311A79EED16C0211646</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T05:18+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>49000</term>
					<term>Днепропетровск</term>
					<term>ул. Дзержинского 2/4. Тел/Факс: (0562) 745 5596</term>
					<term>(0562) 47 1791</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Продемонстрирована (в самом общем случае) возможность согласованного описания потоков управления, данных и информационных связей в процессе разработки алгоритмов средствами трехосновной алгебраической системы (алгебры алгоритмов с данными). Показаны свойства получаемых схем алгоритмов.</p><p>The possibility of the concerted description of management streams is shown in general, data and informative connections in the process of algorithms' development facilities of the tribasic algebraic system (algebras of algorithms with data) is shown (in most general case). The properties of the got charts of algorithms are rotined.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="ru">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Введение</head><p>Поскольку алгоритм является многоаспектной сущностью, то актуальна задача такого его описания, в рамках которого отображаются основные его аспекты: потоки управления, структуры обрабатываемых данных и информационные связи. При этом на каждом этапе разработки эти аспекты должны быть согласованы между собой.</p><p>Учитывая важность роли данных в процессе разработки алгоритмов <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref>, для решения этой задачи предложен алгебраический аппарат <ref type="bibr" target="#b2">[3]</ref><ref type="bibr" target="#b3">[4]</ref><ref type="bibr" target="#b4">[5]</ref> в который, в результате модификации известной модели ЭВМ Глушкова <ref type="bibr" target="#b5">[6]</ref>, "встроены" данные.</p><p>Далее приведены некоторые элементы этого алгебраического аппарата необходимые решения указанной задачи. Используемые далее типы данных соответствуют традиционному для языков программирования понятию и будут обозначаться i f , где } ,..., , {</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Алгебра алгоритмов с данными</head><formula xml:id="formula_0">2 1 k i f f f F f  </formula><p>, а F -множество возможных типов данных.</p><p>Первичными структурами данных являются: составные данные (первичные записи) Для построения производных структур данных введем производные операции, первой из которых является операция итерации данных, полученная в результате обобщения операции композиции на n одинаковых элементов и записываемая в виде " n {} ". Применяя эту операцию к некоторому одномерному массиву размера 1 n получаем двумерный массив</p><formula xml:id="formula_1">i i f n f n D D } { 1 2 2 1 n , n  , к двумерному -трехмерный массив i f D 1 2 3 n , n , n и т. д., на k-ом шаге получаем i k i f n f D D } { 1 2 k 1 2 1 - k n , n ,..., n n , n ,..., .n  k-мерный массив.</formula><p>Распространив операцию итерации данных на множество записей, получаем</p><formula xml:id="formula_2">ЗП n ЗП } { D D n  одномерный массив записей (в дальнейшем массив записей). Применяя эту операцию к массиву записей k раз, получаем многомерный массив записей в виде ЗП n ЗП k D D } { 1 k 1 1 - k n ,..., n n ,..., .n</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head></head><p>. Введенная операция позволила получить производные структуры данных многомерные массивы, одномерные и многомерные массивы записей. Операция композиции распространенная на полученные производные структуры данных, позволяет организовывать записи, включающие в свой состав простые данные, одномерные и многомерные массивы, одномерные и многомерные массивы записей, то есть получать структуры данных произвольной сложности вложенные на произвольную глубину.</p><p>Для случая, когда необходимо описывать в виде единого целого произвольно расположенные, в частности, семантически несвязанные данные, введем операцию группировки данных, которую обозначим "   ". В результате применения этой операции к произвольным структурам данных</p><formula xml:id="formula_3">Г i S S D D D 1       , а в общем случае Г i S p S D D D 1 1 ...     </formula><p>, получаем новые данные, называющиеся первичными группами данных.</p><p>Распространив эту операцию на множество групп</p><formula xml:id="formula_4">Г Г m Г D D D 1 2 1 1 1 ...     </formula><p>получаем новую группу данных второго уровня вложенности, в которую могут быть вложены как первичные, так и производные группы.</p><p>Элементы группы данных могут быть, как упорядочены, так и не упорядочены, а отличие их от структур данных состоит в том, что на множестве групп данных операция композиции не определена. Последовательное применение операции группировки к группам данных</p><formula xml:id="formula_5">Г j Г k 1 Г 1 1 D D ... D n n n       </formula><p>позволяет получить вложенность групп данных на практически произвольную глубину. На любом, начиная со второго уровня вложенности групп данных, они могут трактоваться как семейство множеств</p><formula xml:id="formula_6">} D ,..., D { D Г k 1 Г 1 1 Г j    n n n таких, что для любого Г i 1 Г i 2 D D j    n n допустимо как Г p 1 Г i 2 D D j    n n , так и Г p 1 Г i 2 D D j    n n для всех i p  .</formula><p>Для детализации данных введем операции. Операция разгруппировки "   ", применение которой к группе данных</p><formula xml:id="formula_7">Г p n Г n Г i n D D D 1 1 1 ,...,     <label>(1)</label></formula><p>порождает группы данных предшествующего уровня вложенности. В частных случаях и в случае первичной группы данных получаем структуры данных и\или простые данные. </p><p>-из одномерного массива получаем кортеж из n простых данных типа i f</p><formula xml:id="formula_9">i i i f n f f d d ,..., ) D ( * 1 n  . (<label>6</label></formula><formula xml:id="formula_10">)</formula><p>Приведенные операции позволяют детализовать все возможные структуры данных. В результате такой декомпозиции массивы разбиваются на образующие их компоненты. Однако необходимость осуществлять детализацию сложных глубоко вложенных структур данных требует дополнительных средств. Достаточно легко увидеть, что на основе введенных легко могут строиться производные операции.</p><p>В частности, для групп данных операция</p><formula xml:id="formula_11">Г p n Г s n Г i n Г r n Г n Г i n s r D D D D D D 1 1 1 1 1 ,..., , , ,..., ) ( *       ,<label>( 7 )</label></formula><p>где</p><formula xml:id="formula_12">Г s n Г r n Г i n D D D 1 1 1 1 ...          </formula><p>, отделяет r первых и s последних групп данных предыдущего уровня их вложенности. Ограничением на применение этой операции является соотношение s r  . Заметим, что при s r  операции вырождаются в исходную операцию разгруппировки (см. ( <ref type="formula" target="#formula_7">1</ref>)). Заметим так же, что эти операции, очевидно, могут использоваться и в случае, когда детализуемые группы данных включают не только группы, а и любые структуры данных.</p><p>Для записей производными операциями детализации данных являются:</p><formula xml:id="formula_13">ЗП i n ЗП i n ЗП i n p p p s s D D D ,..., ) ( * 1 2 1 ,... ,  ,<label>( 8 )</label></formula><formula xml:id="formula_14">где ЗП p p n ЗП p p n ЗП i n j j j D D D            ... 1 1 ... 1 1 1 1 ...   ; ЗП p n ЗП s n ЗП i n ЗП r n ЗП n ЗП i n s r D D D D D D 1 1 1 1 1 ,..., , , ,..., ) ( *       ,<label>( 9 )</label></formula><p>где</p><formula xml:id="formula_15">ЗП s n ЗП r n ЗП i n D D D 1 1 1 1 ...* *       .</formula><p>Для массивов и массивов записей, которые в общем многомерном случае обозначим D </p><formula xml:id="formula_16">i i s f j p f j p f j s p p p D D D ,..., ) ( * 1 1 2 1 ,... ,  и ЗП i p n ЗП i p n ЗП i s n p p p s s s D D D ,..., ) ( * 1 1 2 1 ,... ,  , (<label>1 1 )</label></formula><p>порождает s одномерных массивов, при условии, что</p><formula xml:id="formula_17">s p p p s     ... 2 1 .</formula><p>Распространив производную операцию (4) на множество массивов, получаем следующий результат: <ref type="formula">12</ref>) позволяют разгруппировать (перегруппировать) группы и детализовать структуры данных произвольной сложности и размера вложенные на произвольную. Производные операции, набор которых, очевидно может быть расширен, упрощают процесс детализации сложно организованных данных.</p><formula xml:id="formula_18">i s r k i r k i k i r k i k i k f j s s f j s s f j s s r s f j s s f j s s f j s s s r D D D D D D           1 1 1 1 1 1 1 1 1 1 1 1 ,..., ,..., ),..., ( ,..., ,..., ,..., ,..., , , ,..., ) ( * и (12) , ,..., , ,..., ) ( * 1 1 1 1 1 1 1 1 1 1 1 1 ,..., 1 ,..., 1 ),..., ( ,..., 1 ,..., 1 ,..., ЗП i s s n ЗП i s s n ЗП i s s r s n ЗП i s s n ЗП i s s n ЗП i s s n s r s r k r k k r k k k D D D D D D               при условии k s s r   . Введенные операции (1)-(</formula><p>К логическим операциям, определенным на множестве логических условий L, отнесены известные операции дизъюнкция, конъюнкция отрицание со своими таблицами истинности <ref type="bibr" target="#b5">[6]</ref>.</p><formula xml:id="formula_19">Фундаментальным элементом описания алгоритмов, в рамках этого аппарата, являются Д-операторы ) ( ) ( D X D  , обрабатывающие данные и определенные в работе [4] следующим образом. Определение 2. На входе Д-оператора ) ( ) ( D X D</formula><p> специфицировано множество входных данных D (в частном случае простые данные d ), обрабатывая которые он в общем случае изменяет множество выходных (специфицированных на его выходе) данных D (в частном случае простых данных d  ). Для множеств входных и выходных данных таких, что</p><formula xml:id="formula_20">  D и    D , может выполняться как соотношение     D D (в частности, D D   и D D   ), так и     D D . В первом случае, изменяются значения подмножества входных данных ) ( D D D D       (в частности, все входные данные, если D D   ). Во втором -значения входных данных остаются неизменными.</formula><p>Определяющей для дальнейших рассуждений является операция композиции Д-операторов определенная следующим образом.</p><p>Композиция Д-операторов (операция обозначается "*")</p><formula xml:id="formula_21">) ( ) ( * ) ( ) ( D X D D X D   означает последовательное выполнение сначала Д-оператора ) ( ) ( D X D  затем Д-оператора ) ( ) ( D X D  . То есть, Д-оператор ) ( ) ( D X D  непосредственно предшествует Д-оператору ) ( ) ( D X D  , а Д-оператор ) ( ) ( D X D  непосредственно следует за Д- оператором ) ( ) ( D X D  .</formula><p>Естественное обобщение этой операции записывается в виде</p><formula xml:id="formula_22">) ( ) ( * ... * ) ( ) ( * ... * ) ( ) ( 1 1 1 s s s i i i D X D D X D D X D    .</formula><p>Кроме операции композиции сигнатура алгебры Д-операторов включает множество других операций (см. <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b3">4]</ref>), которые в данной работе только упоминаются.</p><p>На основе изложенного перейдем к решению поставленной задачи.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Разработка алгоритмов</head><p>Перед тем, как разрабатывать алгоритм, определим его. Определение 3. Алгоритмом называется Д-оператор</p><formula xml:id="formula_23">) ( ) ( D A D</formula><p> , на входе которого специфицированы все глобальные данные подлежащие обработке, а на выходе все глобальные данные, являющиеся результатом этой обработки (результирующие).</p><p>Очевидно, что обрабатываемые -это определенные (инициализированные), то есть имеющие некоторые начальные значения данные, в частности константы, или данные, вводимые с внешних устройств (клавиатуры, магнитных дисков, аналого-цифровых преобразователей и т. д. и т. п.). Результирующие -это данные, являющиеся результатом работы программной системы, отображаемые (например, на экране дисплея) и/или сохраняемые на внешних устройствах.</p><p>Исходя из определения и приведенных соображений, алгоритм запишем в виде Рассмотрение процесс разработки алгоритма начнем со следующего требования предъявляемого к этому процессу. Наряду с реализацией известных принципов (формальности, абстрактности, иерархической упорядоченности и т. д.), в процессе разработки необходимо обеспечить, что бы все специфицированные в алгоритме данные были обработаны, а все обрабатываемые -специфицированы.</p><p>В качестве основы для организации процесса разработки воспользуемся теоремой, доказанной в работе <ref type="bibr" target="#b6">[7]</ref>, смысл которой, если отбросить не существенные для рассматриваемого случая подробности, состоит в следующем.</p><p>Произвольный Д-оператор Процесс разработки алгоритма начинается с этапа проектирования архитектуры программной системы, который играет ключевую роль, так как от качества его реализации в существенной мере зависят все последующие этапы и, в конечном счете, качество программного продукта. На этом этапе решаются две взаимосвязанные основные задачи:</p><formula xml:id="formula_24">) ( ) ( D X D  может быть декомпозирован, то есть, представлен в виде эквивалентной ему композиции двух других Д-операторов ) ( ) ( * ) ( ) ( ) ( ) ( D X D D X D D X D (              . Обобщение этого результата позволяет ввести следующую форму представления Д-оператора, ) ( ) ( * ... * ) ( ) ( * ) ( ) ( ) ( ) ( 2 2 2 1 1 1 k k k D X D D X D D X D D X D      , которая называется его композиционной схемой (КС), в которой ) ( ) ( D X D  -исходный, а ) ( ) ( 1 1 1 D X D  , ) ( ) ( 2 2 2 D X D  , …, ) ( ) ( k k k D X D  -производные Д-</formula><p>1) определяется состав подсистем, образующих алгоритм, и специфицируются обрабатываемые и продуцируемые этими подсистемами данные;</p><p>2) специфицируются взаимосвязи между этими подсистемами. Учитывая эти задачи подсистему определим следующим образом. Определение 4. Подсистемой назовем Д-оператор</p><formula xml:id="formula_25">) D ( )P (D i i i</formula><p> , реализующий часть функциональности алгоритма, обрабатывающий и продуцирующий часть данных, специфицированных на его входе и выходе. Совокупность информационно связанных подсистем, образующих алгоритм, реализуют всю его функциональность, обрабатывает все данные, специфицированные на его входе, и, с помощью дополнительных (вспомогательных, промежуточных) данных, продуцируют все данные, специфицированные на его выходе.</p><p>Поскольку алгоритм -это Д-оператор, то для решения приведенных задач запишем его, с учетом определения 4, в виде следующей КС:</p><formula xml:id="formula_26">) ( ) D , ( * ... * ) ( ) D , ( ) ( ) , ( РЕЗ ИСХ_ k ИСХ РЕЗ 1 1 ИСХ_ 1 ИСХ 1 РЕЗ ИСХ_ ИСХ k k R k R R D P D D P D D A D D  . (<label>1 3 )</label></formula><p>Будем полагать, что данные, специфицированные на входе и выходе алгоритма, являются группами данных и рассмотрим процесс их описания на примере исходных данных.</p><p>В результате применения к этим данным операции разгруппировки</p><formula xml:id="formula_27">ИСХ ИСХ 1 ИСХ ,..., s D D D    , (<label>1 4 )</label></formula><p>разбиваем исходную группу данных на подгруппы, которые необходимо "распределить" между подсистемами. Если s=k и каждая полученная группа данных согласована с функциональностью одной из подсистем, то есть могут обрабатываться ими, то данные соответствующим образом распределяются, а процесс описания данных на этом завершается. В противном случае, возможно несколько вариантов описания данных. Если полученные данные не согласуются с функциональностью подсистем, так как степень детализации полученных данных излишняя или s&gt;k, то данные должны быть перегруппированы. Для этого, применив к полученным данным операцию группировки следующим образом: ) специфицируются на входе и выходе каждой i-ой подсистемы. Таким образом, получаем совокупность СД, посредством которых обеспечивается согласованность специфицированных структур данных с числом и функциональность подсистем алгоритма. В общем случае в процессе детализации могут быть получены структуры данных, которые будут рассмотрены на следующем этапе.</p><formula xml:id="formula_28">ИСХ 1 ИСХ i ИСХ i D D ... D s 1       ; ………………………… (<label>15</label></formula><formula xml:id="formula_29">) ИСХ r ИСХ i ИСХ i D D ... D m p       , где } ,..., 1 { s i j  (для всех j), получаем</formula><p>Предложенная КС алгоритма (13), очевидно, не полностью отвечает определению 4, так как в ней специфицированы только глобальные данные, в связи с чем, введем понятие локальных данных.</p><p>Локальными будем называть данные, которые можно рассматривать как инкапсулированные в Д-операторе и которые, являясь вспомогательными, специфицируются на входе и выходе производных Д-операторов для реализации их функциональности.</p><p>К локальным данным i-ой подсистемы отнесем</p><formula xml:id="formula_30">исх i D -исходные, R i D _ исх -вводимые исходные, - вводимые, W i D -выводимые. R i D Понятие связи в КС введем посредством следующего определения. Определение 5. Д-операторы ) ( ) ( i i i D X D  и ) ( ) ( j j j D X D  (где i&lt;j), входящие в КС ), ( ) ( * ... * ) ( ) ( * ... * ) ( ) ( * ) ( ) ( * ... * ) ( ) ( ) ( 1 1 1 1 1 1 k k k j j j i i i i i i D X D D X D D X D D X D D X D ) D X( D           прямо связаны, если для них выполняется соотношение     j i D D , а данные j i j i D D D     -прямо связывающие эти Д-операторы или прямые связи. В случае, когда     1 i i D D , Д-операторы ) ( ) ( i i i D X D  и ) ( ) ( 1 1 1     i i i D X D</formula><p>связаны непосредственно, а данные</p><formula xml:id="formula_31">1  i i D  -непосредственно связывающие эти Д-операторы или непосредственные связи. Все связи Д-оператора ) ( ) ( i i i D X D  со всеми следующими за ним и всеми предшествующими ему Д-операторами обозначим 1    k i j j i CB i D D    и 1 1       i j i j CB i D D и назовем правыми и левыми его связями. Из определения 5 следует, что каждый Д-оператор ) ( ) ( i i i D X D</formula><p> может быть связан со всеми следующими за ним Д-операторами и всеми предшествующими Д-операторами. В дальнейшем будем говорить, что некоторое подмножество выходных данных оператора ) ( ) (</p><formula xml:id="formula_32">i i i D X D  , который является источником этих данных, поступает на входы Д-операторов ) ( ) ( ),..., ( ) ( 1 1 1 k k k i i i D X D D X D     </formula><p>, которые являются их приемниками. Отметим, введенные связывающие данные на данном этапе являются локальными.</p><p>Учитывая введенные локальные и связывающие данные, КС алгоритма запишем в следующем виде </p><formula xml:id="formula_33">) ( ) , ( W k РЕЗ k R k исх_R k исх k ИСХ_R k ИСХ k CB k CB i W i РЕЗ i R i исх_R i исх i ИСХ_R i ИСХ i CB i CB 1 W 1 РЕЗ 1 1 R 1 исх_R 1 исх 1 ИСХ_R 1 ИСХ 1 РЕЗ ИСХ_R ИСХ D D P D D D D D D D D D P D D D D D D D D D P D D D D D D A D D k i       где,   CB D 1  ,   CB k D </formula><p>, так как нет предшествующих и последующих Д-операторов. В результате выполненных построений алгоритм разбит на подсистемы, соответствующие определению 4, у которых специфицированы глобальные, локальные и связывающие данные. В приведенной КС специфицированы данные для самого общего случая, который на практике обычно не реализуется. Что бы оценить реальное положение вещей остановимся на свойствах специфицированных данных. Поскольку ИСХ ИСХ ИСХ ...</p><formula xml:id="formula_34">i i i D D D p r      , а семейство множеств ИСХ i D будем трактовать как элемент множества, для исходных глобальных данных выполняется соотношение }) { ... } ({ ИСХ k ИСХ 1 ИСХ D D D    . (<label>18</label></formula><formula xml:id="formula_35">)</formula><p>Аналогичные соотношения выполняются для остальных глобальных данных:</p><formula xml:id="formula_36">}) { ... } ({ ИСХ_R k ИСХ_R 1 ИСХ_R D D D    ,<label>(19)</label></formula><formula xml:id="formula_37">}) { ... } ({ РЕЗ k РЕЗ 1 РЕЗ D D D    .</formula><p>Множества Теперь перейдем к следующему этапу, на котором разрабатываются алгоритмы подсистем, для чего каждая из подсистема декомпозируется, а специфицированные у неё данные детализуются. В результате следующий уровень описание алгоритма представляет собой совокупность ПС всех подсистем, которую назовем первым слоем алгоритма.</p><p>Далее запишем КС всех подсистем, входящих в этот слой, с последовательной нумерацией производных Д-операторов и следующими обозначениями. Полагая, что все специфицированные у всех подсистем (для всех i) данные являются глобальными, множества данных</p><formula xml:id="formula_38">исх i ИСХ i D D  и исх_R i ИСХ_R i D D  обозначим ИСХ_R i 1 D , ИСХ i 1 D , связывающие данные CB i 1 D  , CB i 1 D  , а подсистему -i 1 P</formula><p>, где левый верхний индекс указывает уровень (этап) детализации алгоритма. В качестве локальных данных, аналогично вышерассмотренному случаю, будем использовать</p><formula xml:id="formula_39">исх i D 2 -исходные, R i D _ исх 2 -вводимые исходные, r i 2 D -вводимые, w i D 2 -выводимые и связывающие данные св i 2 D  , св i 2 D  . ) , ,<label>( ) , , , , , , *( ...</label></formula><formula xml:id="formula_40">... * ) , , ,<label>, ( ) , , , , , , *( ...</label></formula><formula xml:id="formula_41">... * ) , , ,<label>, ( ) , , , , , ( ) , , ( ) , , ( CB 2</label></formula><formula xml:id="formula_42">W 2 РЕЗ 2 2 r 2 R 2 исх_R 2 исх 2 ИСХ_R 2 ИСХ 2 св 2 св i 2 CB i 2 w i 2 W i 2 РЕЗ i 2 2 r i 2 R i 2 исх_R i 2 исх i 2 ИСХ_R i 2 ИСХ i 2 св i 2 св i 2 CB 1 2 w 1 2 W 1 2 РЕЗ 1 2 1 2 r 1 2 R 1 2 исх_R 1 2 исх 1 2 ИСХ_R 1 2 ИСХ 1 2 CB 1 1 W 1 1 РЕЗ 1 1 1 1 R 1 1 ИСХ_R 1 1 ИСХ 1 1 1 1 1 1 1 1 1 1 1 1 1 m m m m m m m m m m m i D D D X D D D D D D D D D D D D X D D D D D D D D D D D D X D D D D D D D D D P D D D           ) , ,<label>, ( ) , , , , , , , *( ...</label></formula><formula xml:id="formula_43">... * ) , , ,<label>, ( ) , , , , , , , *( ... ... * ) , , , , ( ) , , , , , , ( ) , , ( ) , , , ( CB</label></formula><formula xml:id="formula_44">m 2 w 2 W 2 РЕЗ 2 2 r 2 R 2 исх_R 2 исх 2 ИСХ_R 2 ИСХ 2 св 2 CB 2 св i m 2 CB i m 2 w i m 2 W i m 2 РЕЗ i m 2 m 2 r 1 m 2 R i m 2 исх_R i m 2 исх i m 2 ИСХ_R i m 2 ИСХ i m 2 св i m 2 CB i m 2 св 1 m 2 CB 1 m 2 w 1 m 2 W 1 m 2 РЕЗ 1 m 2 1 m 2 r 1 m 2 R 1 m 2 исх_R 1 m 2 исх 1 m 2 ИСХ_R 1 m 2 ИСХ 1 m 2 CB 1 m 2 CB 2 1 W 2 1 РЕЗ 2 1 2 1 R 2 1 ИСХ_R 2 1 ИСХ 2 1 CB 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 D D D D X D D D D D D D D D D D D D X D D D D D D D D D D D D D X D D D D D D D D D D P D D D D m m m m m m m m m m m m i                                            …………………………………………………………………………………………………………… ) , ,<label>, ( ) , , , , , , , *( ...</label></formula><formula xml:id="formula_45">... * ) , , ,<label>, ( ) , , , , , , , *( ...</label></formula><formula xml:id="formula_46">... * ) , , ,<label>, ( ) , , , , , , ( ) , , ( ) , , , ( CB</label></formula><formula xml:id="formula_47">m 2 w 2 W 2 РЕЗ 2 2 r 2 R 2 исх_R 2 исх 2 ИСХ_R 2 ИСХ 2 св 2 CB 2 св i m 2 CB i m 2 w i m 2 W i m 2 РЕЗ i m 2 m 2 r i m 2 R i m 2 исх_R i m 2 исх i m 2 ИСХ_R i m 2 ИСХ i m 2 св i m 2 CB i m 2 св 1 m 2 CB 1 m 2 w 1 m 2 W 1 m 2 РЕЗ 1 m 2 1 m 2 r 1 m 2 R 1 m 2 исх_R 1 m 2 исх 1 m 2 ИСХ_R 1 m 2 ИСХ 1 m 2 CB 1 m 2 CB i 1 W i 1 РЕЗ i 1 1 R i 1 ИСХ_R i 1 ИСХ i 1 CB i 1 i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i 1 - i D D D D X D D D D D D D D D D D D D X D D D D D D D D D D D D D X D D D D D D D D D D P D D D D i i i i i i i i i i i i m m m m m m m m m m m m i i                                              ………………………..…………………………………………………………………………………… ). , ,<label>( ) , , , , , , , *( ...</label></formula><formula xml:id="formula_48">... * ) , ,<label>, ( ) , , , , , , , *( ..</label></formula><formula xml:id="formula_49">. ... * ) , ,<label>, ( ) , , , , , , ( ) , ( ) , , , ( w 2</label></formula><formula xml:id="formula_50">W 2 РЕЗ 2 2 r 2 R 2 исх_R 2 исх 2 ИСХ_R 2 ИСХ 2 св 2 CB 2 св i m 2 w i m 2 W i m 2 РЕЗ i m 2 m 2 r i m 2 R i m 2 исх_R i m 2 исх i m 2 ИСХ_R i m 2 ИСХ i m 2 св i m 2 CB i m 2 св 1 m 2 w 1 m 2 W 1 m 2 РЕЗ 1 m 2 1 m 2 r 1 m 2 R 1 m 2 исх_R 1 m 2 исх 1 m 2 ИСХ_R 1 m 2 ИСХ 1 m 2 CB 1 m 2 W k 1 РЕЗ k 1 1 R k 1 ИСХ_R k 1 ИСХ k 1 CB k 1 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k 1 - k k k k k k k k k k k k k m m m m m m m m m m m m i k D D D X D D D D D D D D D D D D X D D D D D D D D D D D D X D D D D D D D D D P D D D D                                       </formula><p>Описание данных рассмотрим на примере некоторой j-ой подсистемы. Группы данных детализуются аналогично вышерассмотренному случаю (см. ( <ref type="formula">14</ref>) -( <ref type="formula">17</ref>)) и записываются в виде СД. Если в результате детализации будет получена структура данных (запись, многомерный или одномерный массив записей, многомерный или одномерный массив), то она детализуется посредством операций (2) -( <ref type="formula" target="#formula_9">6</ref>), ( <ref type="formula" target="#formula_13">8</ref> </p><formula xml:id="formula_51">: } { 1 исх i 2 ИСХ j 1 1  j j m m i D D     ; } { 1 ИСХ_R i 2 ИСХ_R j 1 1  j j m m i D D     ; } { 1 R i 2 R j 1 1  j j m m i D D     ; } D { D j 1 j m 1 m i W i 2 W j 1      ; } D { D j 1 j m 1 m i РЕЗ i 2 РЕЗ j 1      ; } D { D j 1 j m 1 m i CB i 2 CB j 1        ; } D { D j 1 j m 1 m i CB i 2 CB j 1        , при условии выполнения которых множества данных CB p 2 D  , ИСХ p 2 D , ИСХ_R p 2 D , R p 2 D , РЕЗ p 2 D , W p 2 D , CB p 2 D  , где } ,..., 1 { k m p  , могут быть пустыми. Кроме того,   CB m CB D D 1 2 1 2 ,...,   ;     CB m CB m k k D D   2 1 2 ,..., 1 и св 1 2 D  , св 1 2 1  m D  ,... …, св 1 2 1   k m D  =  ; св 2 1 m D  ,…, св 2 k m D  =  .</formula><p>Для глобальных данных алгоритма в этом слое выполняются следующие соотношения: Доказательство очевидно и следует из определения 5.</p><formula xml:id="formula_52">}) { ... } ({ ИСХ m 2 ИСХ 1 2 ИСХ k D D D    ; }) { ... } ({ ИСХ_R m 2 ИСХ_R 1 2 ИСХ_R k D D D    ; }) { ... } ({ РЕЗ m 2 РЕЗ 1 2 РЕЗ k D D D    .</formula><p>На основе этого утверждения, покажем возможность спецификации информационных связей в слое алгоритма и КС, детализовав связывающие данные в виде:    </p><formula xml:id="formula_53">p j j j j D D D    2 1 2 2 ,...,   , j j j j D D D    2 1 2<label>1</label></formula><formula xml:id="formula_54">( CB 2 CB 1 2 2 св 2 1 св 2 1 св m 2 св 1 i 2 CB m 2 CB 1 2 2 св i 2 1 св i 2 1 св m 2 1 св 2 2 1 CB m 2 1 CB 1 2 1 CB 1 2 1 1 2 CB k 1 1 CB 2 1 1 1 1 1 1 1 1 1 1 1 1 k 1 1 k 1 1 k i m m m m m m m m i i i m i i i m m D D X D D D D D D X D D D D D D D X D D D P D                           ………………………………………………………………………………………………………. ) ,</formula><formula xml:id="formula_55">i i i i i i i i i i k i i i i i i i i i i i k i i i i i i i m m m m m m m i m i m i m m i m m i m i m i m i m i m m m m m m m m m m m m m i i i i                                                                     …. ………………………………………………………………………………………………..</formula><formula xml:id="formula_56">D X D D D D X D D D D X D D D P D D D k i k k k k k k k k k k k k k k k k m m m m i m i m i m i m i m i m i m m m m m m m m k k                                               </formula><p>В предложенном варианте записи слоя алгоритма специфицированы не только все возможные связи, а источники и приемники данных поставлены в однозначное соответствие.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Заключение</head><p>На описанном этапе разработки поставленная задача решена. Средствами рассматриваемого алгебраического аппарата согласованно описаны три важнейших аспекта описания алгоритма: поток управления, обрабатываемые данные и информационные связи. В процессе решения указанной задачи выявлены свойства данных, из которых видно, что все специфицированные данные обрабатываются, а подлежащие обработке специфицируются.</p><p>Этот результат естественно переносится и на все следующие этапы, состоящие в повторении показанных действий при сохранении свойств специфицируемых данных. Отличие каждого следующего шага (от предыдущего) состоит в получении все более "толстых" слоев алгоритма и замене Д-операторов соответствующей функциональности операциями алгебры. После такой замены декомпозиции подвергаются Доператоры, входящие в такую операцию.</p><p>Описанный процесс продолжается до достижения такого уровня детализации, после которого возможен переход от алгоритма к программе, что показано в работе <ref type="bibr" target="#b7">[8]</ref>.</p><p>Из изложенного легко увидеть, что указанная задача решается в рамках нисходящей стратегии проектирования алгоритмов. Доказанная в работе <ref type="bibr" target="#b8">[9]</ref> теорема о возможности объединения Д-операторов позволяет, проведя рассуждения в порядке обратном вышеприведенному, получить аналогичный результат для восходящей стратегии проектирования алгоритмов и программ.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>1 </head><label>1</label><figDesc>алгоритмов с данными), где U -множество Д-операторов, L -множество логических условий, D -множество данных,  -базовый набор операций алгебры, включающий операции , определенные на множестве U, 2  , определенные на множестве L, 3  , определенные на множестве D.В рамках алгебры данные определены следующим образом. . В каждый момент времени данные хранят некоторый кортеж значений З, значение -з, определяющий текущее состояние данных.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>1 ,</head><label>1</label><figDesc>, где i f -конкретный тип данных, n -число этих значений (размерность массива). Заметим, что вектор может интерпретироваться различным образом, например, как строка.На множестве упорядоченных первичных структур данных, которые в общем случае обозначим S D , определим операцию объединения (композиции) данных -" * ". В результате применения этой операции к получаем новую структуру данных, называемую записью, где левый нижний индекс -указывает уровень вложенности структур.Применяя операцию композиции к полученным записям вложенностью.Получаемые таким образом записи на каждом уровне вложенности могут трактоваться как кортеж семейств множеств</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>при условии выполнения соотношения (18) и (19), если Д-оператор не имеет локальных исходных данных; R j D и/или W j D , если Д-оператор не осуществляет операций ввода-вывода.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head></head><label></label><figDesc>По поводу связывающих данных будем утверждать следующее. Утверждение. В данном слое алгоритма для глобальных связывающих данных выполняется соотношение локальных связывающих данных в каждой КС -соотношения: и</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_5"><head></head><label></label><figDesc>) -(12). Например, при разгруппировании</figDesc><table><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>1</cell><cell>D</cell><cell>j</cell><cell>ИСХ</cell><cell>получили</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell> </cell><cell cols="3">1 ( D</cell><cell>j</cell><cell cols="4">ИСХ</cell><cell>)</cell><cell></cell><cell>2</cell><cell>ИСХ 1 D</cell><cell>,...,</cell><cell>2</cell><cell>ИСХ_ЗАП r D</cell><cell>,...,</cell><cell>2</cell><cell>D</cell><cell>ИСХ s</cell><cell>,</cell></row><row><cell>где</cell><cell>2</cell><cell>ИСХ_ЗАП r D</cell><cell cols="14">-запись. Выполнив дальнейшую детализацию записи,</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell cols="3">*</cell><cell>(</cell><cell>2</cell><cell cols="2">D</cell><cell>ИСХ_ЗАП r</cell><cell>)</cell><cell></cell><cell>2</cell><cell>D</cell><cell>ИСХ_ЗАП r 1</cell><cell>,...,</cell><cell>2</cell><cell>D</cell><cell>ИСХ_ЗАП r p</cell></row><row><cell cols="17">получаем записи предшествующего уровня вложенности, которые могут быть перегруппированы, в результате</cell></row><row><cell cols="17">чего могут быть включены (все или их часть) в новые группы специфицируемых данных. Эти полученные</cell></row><row><cell cols="17">группы данных и/или полученные записи (перегруппированные, в случае необходимости) распределяются</cell></row><row><cell cols="9">между производными Д-операторами.</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell cols="15">Поскольку для записей выполняется соотношение</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>2</cell><cell cols="8">ИСХ_ЗАП 1 r D</cell><cell>*</cell><cell>...*</cell><cell>2</cell><cell>ИСХ_ЗАП r D p</cell><cell></cell><cell>2</cell><cell>ИСХ_ЗАП r D</cell><cell>,</cell></row><row><cell cols="4">а для исходных данных</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>2</cell><cell cols="6">ИСХ 1 D</cell><cell> </cell><cell>...  </cell><cell>2</cell><cell>ИСХ_ЗАП r D</cell><cell> </cell><cell>...  </cell><cell>2</cell><cell>ИСХ s D</cell><cell>1 D </cell><cell>j</cell><cell>ИСХ</cell><cell>,</cell></row><row><cell cols="4">то семейство множеств</cell><cell>2</cell><cell>D</cell><cell>ИСХ p</cell><cell cols="10">и упорядоченное семейство множеств</cell><cell>2</cell><cell>ИСХ_ЗАП r D</cell><cell>могут трактоваться как</cell></row><row><cell cols="4">элементы множества.</cell><cell></cell><cell cols="12">Поскольку так же могут детализоваться и остальные глобальные данные,</cell></row><row><cell cols="17">специфицированные в КС, то для них выполняются соотношения (аналогичные (18) -(19))</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m">Данные в языках программирования: абстракция и типология</title>
				<editor>
			<persName><forename type="middle">В</forename><surname>Статей / Под Ред</surname></persName>
		</editor>
		<editor>
			<persName><surname>Агафонова</surname></persName>
		</editor>
		<editor>
			<persName><surname>-М</surname></persName>
		</editor>
		<imprint>
			<publisher>Мир</publisher>
			<date type="published" when="1982">1982</date>
			<biblScope unit="page">328</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">The effect of data structures on the logical complexity of programs // CACM</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">B</forename><surname>Bastani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">S</forename><surname>Iyengar</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1987">1987</date>
			<biblScope unit="volume">30</biblScope>
			<biblScope unit="page" from="250" to="259" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">В</forename><surname>Акуловский</surname></persName>
		</author>
		<idno>-№ 2-3</idno>
		<title level="m">Основы алгебры алгоритмов, базирующейся на данных // Проблеми програмування</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="89" to="96" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<author>
			<persName><forename type="first">В</forename><surname>Акуловский</surname></persName>
		</author>
		<title level="m">Алгебра алгоритмов, базирующаяся на данных // Кибернетика и системный анализ</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="151" to="166" />
		</imprint>
	</monogr>
	<note type="report_type">2</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Алгебра алгоритмов с данными и прогнозирование вычислительного процесса // Проблеми програмування</title>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">Е</forename><surname>Дорошенко</surname></persName>
		</author>
		<author>
			<persName><forename type="first">В</forename><surname>Акуловский</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="3" to="10" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">В</forename><forename type="middle">М</forename><surname>Глушков</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Г</forename><surname>Цейтлин</surname></persName>
		</author>
		<title level="m">Алгебра. Языки. Программирование. -К</title>
				<imprint>
			<date type="published" when="1978">1978</date>
			<biblScope unit="page">319</biblScope>
		</imprint>
	</monogr>
	<note>Наукова думка</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">В</forename><forename type="middle">Г</forename><surname>Акуловский</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><surname>Дорошенко</surname></persName>
		</author>
		<idno>-2012. -№ 3</idno>
		<title level="m">Е. Нисходящее проектирование алгоритмов в рамках алгеброалгоритмического подхода // Математические машины и системы</title>
				<imprint>
			<biblScope unit="page" from="97" to="102" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Реализация формализованного перехода от алгоритма к программе средствами расширенной алгебры алгоритмов // Проблеми програмування</title>
		<author>
			<persName><forename type="first">В</forename><surname>Акуловский</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="51" to="59" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">Ю</forename><surname>Дорошенко</surname></persName>
		</author>
		<author>
			<persName><forename type="first">В</forename><surname>Акуловський</surname></persName>
		</author>
		<idno>Випуск 1</idno>
		<title level="m">Г. Висхідне проектування алгоритмів при алгеброалгоритмичному підході // Вісник Київського національного університету імені Тараса Шевченка. Серія фізико-математичні науки</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="167" to="172" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
