Главная > База знаний > Большая советская энциклопедия > АССОЦИАТИВНОЕ ПРОГРАММИРОВАНИЕ

АССОЦИАТИВНОЕ ПРОГРАММИРОВАНИЕ

АССОЦИАТИВНОЕ ПРОГРАММИРОВАНИЕ совокупность
способов решения информационно-логич. задач, основанных на программной
реализации ассоциативных связей между данными, хранящимися в запоминающих
устройствах (ЗУ) цифровых вычислит. машин (ЦВМ); раздел программирования
для ЦВМ в иностранной лит-ре известен под назв.: списковая обработка данных,
узловой способ организации данных, способ цепной адресации, метод управляющих
слов. А. п. применяют при логич. обработке информации о различных объектах,
состав и количество к-рых меняются в процессе решения, когда заранее невозможно
определить объёмы данных различных видов и произвести точное распределение
объёма ЗУ машины.


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


Списками в А. п. наз. любые
группы данных, объединённых по к.-л. признакам. В ЗУ ЦВМ организуются либо
последоват. списки - путём расположения данных в ячейках с последовательно
возрастающими адресами, либо цепные списки - объединением данных при помощи
адресатов связи. Адрес связи хранится совместно с членом списка и указывает
расположение последующего члена данного списка. При этом члены списков
могут располагаться произвольно в ЗУ, а нек-рые из них могут указывать
ответвления к. т. н. подспискам. Совокупность списка с ответвляющимися
подсписками наз. списковой структурой.


Осн. средства А. п.: использование
адресов связи для построения списков различных видов, объединяющих объекты
с общими признаками; использование списковых структур для представления
иерархич. систем организации данных; использование т. н. продвигаемых списков
для временного запоминания данных в определённом порядке и восстановления
их в обратном порядке; организация памяти в виде цепного списка ячеек,
обеспечивающая гибкость и полноту использования всего объёма памяти и исключающая
необходимость в её детальном предварительном распределении.


Идея цепной адресации списков
принадлежит амер. учёным Ньюэллу, Саймону и Шоу, ими же подробно разработана
методика построения и преобразования цепных списков. Обычно при обработке
данных о нек-рой совокупности объектов эти данные распределяются между
различными списками, причём данные об одном и том же объекте могут находиться
одновременно в неск. списках. Для того чтобы многократно не повторять в
разных списках всю информацию о каком-либо объекте, в ЗУ машины выделяется
определённая область, в к-рой последовательными участками, т. н. записями,
размещается вся информация об объектах, причём каждому объекту соответствует
отдельная позиция (одна запись) со своим адресом. При построении каждого
цепного списка программистом заранее выделяется одна ячейка, наз. фиксатором
списка и содержащая адрес первого члена в списке, число членов в списке
и др. данные о списке. Достоинство цепного способа организации списков
- удобство включения новых иисключения ненужных членов в любом месте списка
без перемещения всех остальных членов. Модификациями цепного способа построения
списков являются гнездовой и узловой способы.


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


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


При А. п. удобно пользоваться
некоторыми спец. алгоритмич. языками (напр., LISP-1,5, IPL-V) либо спец.
разделами универсальных алгоритмич. языков (таких, как PL-1, АЛГЭМ, АЛГОЛ-КОБОЛ).
Иногда А. п. осуществляют в коде конкретной машины, пользуясь нек-рыми
спец. приёмами. Применение А. п. позволяет значительно ускорить поиск и
обработку данных в больших массивах и обеспечивает удобное и компактное
представление сложных алгоритмов решения информационно-логич. задач - таких,
как планирование производства и материально-технич. снабжения, поиск научно-технич.
информации, поиск справочных данных о различных машинах, приборах и т.
п.


Лит.: Китов А. И., Программирование
информационно-логических задач, М., 1967; Newell А., Т о n g e F. M., An
introduction to Information Processing Language V., "Association for computing
machinery communications", 1960, v. 3, №4; McCarthy J.,Recursive functions
of symbolic expressions and their computation by machine, pt 1, там же;
Bobrow D. G., Raphael В., A comparison of listprocessing computer languages,
там же, 1964, v. 7, № 4.


А. И. Китов.

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я