Асоціативне програмування
 
а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
 

Асоціативне програмування

Асоціативне програмування, сукупність способів вирішення інформаційно-логічних завдань, заснованих на програмній реалізації асоціативних зв'язків між даними, що зберігаються в пристроях (ЗУ) цифрових обчислювальних машин, що запам'ятовують (ЦВМ); розділ програмування для ЦВМ(цифрова обчислювальна машина) в іноземній літературі відомий під назвою: спискова обробка даних, вузловий спосіб організації даних, спосіб ланцюгової адресації, метод слів, що управляють. А. п. застосовують при логічній обробці інформації про різні об'єкти, склад і кількість яких міняються в процесі рішення, коли заздалегідь неможливо визначити об'єми даних різних видів і виробити точний розподіл об'єму ЗУ машини.

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

  Списками в А. п. називаються будь-які групи даних, об'єднаних по яких-небудь ознаках. У ЗУ ЦВМ(цифрова обчислювальна машина) організовуються або послідовні списки — шляхом розташування даних у вічках з що послідовно зростають адресами, або ланцюгові списки — об'єднанням даних за допомогою адресатів зв'язку. Адреса зв'язку зберігається спільно з членом списку і вказує розташування подальшого члена даного списку. При цьому члени списків можуть розташовуватися довільно в ЗУ, а деякі з них можуть вказувати відгалуження т.з. підспискам. Сукупність списку з підсписками, що відгалужуються, називається списковою структурою.

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

  Ідея ланцюгової адресації списків належить американським ученим Ньюеллу, Саймону і Шоу, ними ж детально розроблена методика побудови і перетворення ланцюгових списків. Зазвичай при обробці даних про деяку сукупність об'єктів ці дані розподіляються між різними списками, причому дані про один і той же об'єкт можуть знаходитися одночасно в декількох списках. Для того, щоб багато разів не повторювати в різних списках всю інформацію про який-небудь об'єкт, в ЗУ машини виділяється певна область, в якій послідовними ділянками, т.з. записами, розміщується вся інформація про об'єкти, причому кожному об'єкту відповідає окрема позиція (один запис) зі своєю адресою. При побудові кожного ланцюгового списку програмістом заздалегідь виділяється одне вічко, називається фіксатором списку і що містить адресу першого члена в списку, число членів в списку і інші дані про список. Гідність ланцюгового способу організації списків — зручність включення нових і виключення непотрібних членів в будь-якому місці списку без переміщення всіх останніх членів. Модифікаціями ланцюгового способу побудови списків є гніздовий і вузловий способи.

  При гніздовому способі члени одного списку розташовуються підряд в послідовних вічках ЗУ. При цьому в спискових словах вказуються лише адреси записів об'єктів, що є членами даного списку, і деякі доповнить. ознаки. Оскільки склад списків змінний, даний варіант реалізується не у вигляді суцільних послідовностей вічок, що відносяться до одного списку, а у вигляді гнізд членів одного списку. Усередині гнізда члени розміщуються підряд, а зв'язок між гніздами здійснюється адресами зв'язку.

  Вузловий спосіб побудови списків служить для утворення багатоспискових структур. У вузлових списках від кожного члена списку можуть бути зроблені переходи не лише до одного наступного члена, але і до багатьом іншим членам, тобто кожен член — вузол пересічення багатьох списків. При цьому всі спискові слова, що представляють один і той же об'єкт в різних списках, розташовуються в ЗУ машини підряд.

  При А. п. зручно користуватися деякими спеціальними алгоритмічними мовами (наприклад, Lisp-1,5, IPL-V) або спеціальними розділами універсальних алгоритмічних мов (таких, як Pl-1, АЛГЕМ, АЛГОЛ-КОБОЛ). Інколи А. п. здійснюють в коді конкретної машини, користуючись деякими спеціальними прийомами.

  Вживання А. п. дозволяє значно прискорити пошук і обробку даних у великих масивах і забезпечує зручне і компактне представлення складних алгоритмів вирішення інформаційно-логічних завдань — таких, як планерування виробництва і матеріально-технічного постачання, пошук науково-технічної інформації, пошук довідкових даних про різних машинах, приладах і тому подібне

  Літ.: Китів А. І., Програмування інформаційно-логічних завдань, М., 1967; Newell A., Tonge F.m., An introduction to Information Processing Language V., «Association for computing machinery communications», 1960, v. 3 №4: Mccar-t_h в J., Recursive functions of symbolic expressions and their computation by machine, pt I, там же; Воbrow D. G., Raphael B., A comparison of listprocessing computer languages там же, 1964, v. 7 № 4.

  А. І. Китів.