muzruno.com

"Какво е станало на стека", че се е върнал: абстрактната основа на реалността

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

Функции, процесор, двоична логика

Процесорът управлява паметта и изпълнява логиката на изпълнението на цикличен код. Програмата е една или набор от функции, които представляват последователност от операции: изберете нещо, направете така, поставете нещо там. Операционната система също е по-отговорна кодекс: тя е инструктирана да изпълнява и наблюдава други програми.

Всъщност функцията (независим елемент на алгоритъма) е само поредица от двоични операции. Програмата се различава от функцията по това, че се вгражда и координира други части от кода.

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

Трансфер и управление на връщането

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

Кодът се зарежда в паметта и се изпълнява последователно. За да се извика функция (друго парче от кода), се използва куп. Какво е това? Памет (и указател към нея), която се различава от обичайната, тъй като всеки следващ елемент е поставен над предишния. Затова, за да накарате всички по-долу, трябва да вземете и да изработите всичко, което е над него. Показалецът винаги сочи към текущото положение в стека.

Натрупайте това, което е

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

Регистрите AX, BX, CX, DX, EX стават някакви символи на ерата на началото на информационната ера, но SP и SS са основният талисман. Как се използва стека в програмирането? Примерите за миналото няма да станат архитектурни паметници от началото на епохата. Стакът влезе в двойния свят заедно с думите "функция" и "рекурсия" и изчезна в общата логика на разработката на програмната практика.

Да служите на данните, за да решите какво да правите

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



Какъв е стакът и къде се прилага?

Стекът се пълни, тъй като плочите падат в купчина, която се изпраща, за да служи на масата. Съдбата на плочите, т.е. пълненето им, се решава на мястото, където се прехвърля. Според логиката на взаимодействието, командата "стека това, което е" дава предварително съгласие дадена между този, който се обади и онзи, когото призова. След като процесът приключи, е важно да върнете контрола към адреса до изпращане на стека до масата.

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

Основни абстракции

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

Приложете стека в примерите за програмиране

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

Променливата, тъй като тя е памет клетка, остава така до днес, само сега идеите за него са се променили. След като уверено преживяха жестоката типичност, те сега казват: нещо може да бъде всичко и да вземеш нещо в истинска памет, защото това абсолютно не е важно изобщо.

Операторите, състояния, цикли, блокове - са много по-малко трансформирани в семантичния план, но синтаксиса отдавна е без значение. Борбата с програмирането на езици за идеали не даде шанс да спечели един от тях. Инструментът (компилатор / преводач / черупка) трябва просто да работи, да бъде стабилен и напълно функционален и как и какво да пише / използва, е грижата на програмиста, а не на автора на езика.

Stack придоби нов смисъл в този глобален процес на разработване на представителства и технологии. Променливи във формата, в която те са удобни, наслоени един върху друг, а алгоритмите и операторите са включени един в друг. Често можете да чувате за стека на протокола, когато човек осигурява работата на друг.

Стекът, функционалността и рекурсията изобщо не са синоними, но те се допълват перфектно помежду си, което ви позволява да създавате уникални възможности за представяне и обработка на информация.

Споделяне в социалните мрежи:

сроден