Що таке стек, рекурсія і природний алгоритм

Кажуть, що теорія і практика програмування – це високі технології і вони розвиваються. Область інформаційних технологій стрімко розширює свої можливості. З’являються нові професії і ринки.

Можливо, це так є насправді, але фундаментальні конструкції програмування як були на початку почав, такими і мають донині. А це ж не молоток і не викрутка, які, по суті своїй, вічні.

Конструкції синтаксису і реальна логіка

Без формального представлення даних немає програмування. Людина прекрасно себе почував у світі інформації задовго до того, як зрозумів, що багато його дії – це алгоритми. Конвейєри, верстати, інструменти – це механізми, жорсткі форми реалізації послідовностей дій.

Ідеальний приклад – стек протоколів. Кожен працює на своєму рівні: фізичний, канальний, мережевий, транспортний і т. д. При цьому в кожній мережевий конструкції набір протоколів і їх взаємодія – свої. Це працює! До речі, стек протоколів – це не тільки локальні та глобальні мережі. В дипломатії є свій комплект протокольних ідей, в економіці – свій, в організації виробництва взагалі маса правил і умовностей, пластами покладених в єдину систему.

Поява обчислювальних машин, комп’ютерів, смартфонів не викликало революції. Усі що існували коли-небудь і існуючі донині мови програмування маніпулювали і продовжують це робити все тими ж алгоритмами, але у більш м’яких конструктивних формах.

«М’якість» мови програмування проти «жорсткості» послідовності дій конвеєра не дала потрібного ефекту. Насправді кожна мова програмування – це система жорстких правил синтаксису, а інформація, яка підлягає обробці, вбирається в сувору формальну структуру даних.

Реальна логіка мобільна. Людина приймає рішення щодо ситуації, спираючись на динамічно розвивається фундамент знань. Весь арсенал алгоритмів людини – це жива динаміка. «Подібні по суті» дії моментально набувають рекурсивні форму, а кожне наступне дія спирається на попереднє.

Що таке стек знань в реальності – це динаміка нових можливостей на базі вже сформованих обставин.