Какво е стек, рекурсия и естествен алгоритъм

Казва се, че теорията и практиката на програмиране са високи технологии и те се развиват. Областта на информационните технологии бързо разширява възможностите си. Има нови професии и пазари. Може би това е така, но основният дизайн на програмирането, както беше в началото, започна и все още го има. И това не е чук или отвертка, която по същество е вечна.

Синтаксични конструкции и реална логика

Няма формално представяне на данни, няма програмиране. Човекът беше много добър в информационния свят много преди да разбере, че много от неговите действия са алгоритми. Конвейери, машини, инструменти - това са механизми, твърди форми на изпълнение на последователности от действия.


Идеален пример е стекът от протоколи. Всеки работи на своето ниво: физически, канален, мрежов, транспортен и т.н. В същото време във всеки дизайн на мрежата, набор от протоколи и тяхното взаимодействие - свои. Тя работи! Между другото, стакът от протоколи е не само локални и глобални мрежи. В дипломацията има набор от протоколни идеи, в икономиката - собствена, в организацията на производството като цяло, масата на правилата и конвенциите, слоевете, поставени в единна система.
Появата на компютри, компютри, смартфони не предизвика революция. Всички съществуващи и настоящи езици за програмиране са манипулирани и продължават да правят същото с всички същите алгоритми, но в по-леки конструктивни форми. "Мекота" на езика за програмиране срещу "твърдостта" на последователността от действияконвейерът не даде желания ефект. Всъщност, всеки език за програмиране е система от строги правила на синтаксиса и информацията, която трябва да бъде обработена, е взета в строга формална структура на данните.


Истински логически мобилни устройства. Човек решава ситуация, основана на динамично развиващата се основа на знанието. Целият арсенал от човешки алгоритми е жива динамика. "Подобни по същество" действия незабавно придобиват рекурсивна форма и всяко следващо действие се основава на предишното. Това, което всъщност е купчина знания, е динамиката на новите възможности, основани на вече формирани обстоятелства.

Пълен стек разработчик

Ако вярвате на Google, тогава първото споменаване на "разработчик" ("= разработчик" - нещо по-значимо от програмист) е с дата не по-рано от 2010 г. Ако вярвате на други източници, идеята за "разработчик" е 2004. По същество времето тук не е важно. Разработчикът с пълен набор от знания стигна до програмирането, но нищо не се е променило.
Стек в програмирането - това е моментът на първия процесор, защото той трябваше да осигури последователното изпълнение на команди. На ниво машинни кодове е трудно да се мисли концептуално, но стекът се формира уверено в съзнанието на професионалистите като изненадващо просто и ефективно правило за организацията на изчислителните процеси.
Без стек няма рекурсия и без него всеки алгоритъм става тромава последователност от действия. Всеки човек може да мисли и да действа рекурсивно, но писането на такъв алгоритъм не се дава на всеки програмист, трудно е да се каже нещо за "разработчиците" в този контекст.някои от тях.
Каквото и да е името на професия, нищо няма да се промени: програмист, разработчик или разработчик на пълен стак. Човек трябва да знае своя случай изцяло и по такъв начин, че динамично да расте адекватно променящите се условия на труд. Знанието не може да бъде статично, тъй като те винаги са динамични.

Табла Stos срещу твърд синтаксис

Програмистите и придружаващите ги лица (специалисти от различни профили) отдавна са се научили да говорят добре: разработчици на пълен стак: програмистите, които разбират целия стек, обикновено създават по-качествени програми. Много такива декларации можете да намерите в интернет. Но ако във всяко кафене и ресторант по стария начин плочите са толкова удобни, че са удобни за използване и тази технология взема предвид адаптивната реалност на текущата ситуация, то в програмирането все още доминират: ако, превключвате, за, foreach, while и символа за възлагане. Всички синтактични постижения от миналия век са се преместили в настоящия век с ясна претенция да оцелеят до следващия век. Пълна или непълна, но програмистът, който мисли за реалността и се стреми да създаде качествен софтуерен продукт, може да излезе извън границите на предвидения твърд синтаксис. Какво е стак, ако не инструмент за борба с тази спирачка на напредъка? Каквото и да мисли дизайнерът на съвременния език за програмиране, опитвайки се да запази наследството от миналия век, то може да бъде банално изравнено с помощта на купчина.
Един прост пример. Има реална информация. Има даденост, която може да бъде обработена чрез специфичен алгоритъм. Решението е постижимо. Но реалната информация определяопции за данни. Следователно са необходими версии на алгоритми, които ще доведат до решения. Няма нищо по-просто от създаването на купчина: възникна конкретна ситуация и тя „измисли“ надолу, разширена в компоненти и след това се изкачи и показа решение.

Рекурсия, какво е стак за нея

Невъзможно е да се опише всичко с един алгоритъм. Създавайки програма, специалистът постоянно намира такива области от кода. Използвайки функциите, програмистът го оптимизира и я прави четивна, тествана и ефективна. Рекурсията е качествено ново ниво на функционалност: функцията на функцията да се нарича, когато е необходимо и да се върне към предишната позиция на нещата, променяйки необходимото количество данни. Какво е стек, ако не план за потапяне в проблем преди пълното му разпознаване (разбиране) и връщане към първоначалното състояние с адекватна промяна в обкръжаващата реалност (данни).
Програмирането манипулира данни, но не и информация. Според повечето експерти данните са официална система за докладване. Ако създадете няколко официални системи, ще има повече опции за представяне на информация, което означава стек. Компютърът ще получи алгоритъм за адекватен отговор на информацията, предоставена от официалните системи за данни.

Разбира се, в този контекст всичко зависи от нивото на познаване на програмиста и неговата способност да представя информация в различни системи от структури на данни. Давайки на всяка такава структура необходимата функционалност (на нивото на всяка от тях), можете да получите картина на данни и функции. Тя ще бъде в общата системаадекватно универсално решение. Не е необходимо да бъде разработчик на пълен стек, а по-скоро да бъде програмист, да се стреми да създава динамични рекурсивни алгоритми. Светът, разбира се, няма да падне на крака на такъв специалист, но работата му той ще знае добре.

Естествен алгоритъм

Няма конкретни варианти: естественият алгоритъм е това, което се изпълнява само по себе си и адекватно получената информация. Обикновено естествените алгоритми са присъщи на човека, живата и неживата природа. Можем да кажем, че съществуват съзнателни алгоритми и закони на физиката, химията, икономиката и обществото.
Информацията е поток от нещо, в което има система и закономерности. Не е нужно да разбирате всичко това наведнъж, винаги можете да го направите по-късно. За решаването на настоящите проблеми е достатъчно да се възприеме информация и да се отговори адекватно на нея. В контекста на програмирането и "високите технологии" достатъчно за постигане на обективно и ефективно решение на всяка задача е достатъчно рекурсия и правила на стека.

Свързани публикации