Stack: co to je a aplikace

Stack je programovací jev a přirozené řešení. Stack se okamžitě dostal k počítači a stal se tak "nativní", jako kdyby to všechno začalo.

Žádný procesor běží bez zásobníku, nedochází k rekurzi a efektivní volání nelze organizovat. Jakýkoli algoritmus lze provést bez fronty, seznamu, sbírky, pole nebo systému organizovaných objektů, ale bez paměti a zásobníku nic nefunguje, včetně všech uvedených položek.

Za úsvitu počátku: procesor, paměť a zásobník

Ideální paměť umožňuje přímou orientaci na hodnotu - to jsou stroje a jazyky vysoké úrovně. V prvním případě procesor důsledně přesouvá adresy paměti a provádí příkazy. Ve druhém případě programátor manipuluje s poli. V obou epizodách jsou:
  • adresa = hodnota;
  • index = hodnota.
  • Adresa může být absolutní a relativní, index může být digitální a asociativní. Adresa a index mohou mít jinou adresu než je hodnota, ale to jsou detaily nepřímého adresování. Bez paměti procesor nemůže fungovat, ale bez stohu příkazů a dat - je to jako loď bez vesel. Stohovací desky - tradiční příběh o podstatě zásobníku: koncept stohu a překlad do obecného vědomí. Můžete si vzít talíř zezadu, můžete vzít pouze ze shora a všechny desky budou celé.
    Vše, co je poslední v zásobníku, je první. Ideální řešení. V podstatě zásobník, jako překlad jedné akce do druhé, přeměňuje koncept algoritmu jako posloupnost operací.

    Podstata a koncept zásobníku

    Procesor a paměť -hlavní konstrukční prvky počítače. Procesor provádí příkazy manipulovat adresy paměti, načte a změní hodnotu těchto adres. V programovacím jazyce se to všechno mění na proměnné a jejich významy. Podstatou stohu a koncept poslední v první ven „(LIFO) zůstává nezměněna.


    , LIFO Zkratka se nepoužívá tak často jako dřív. Možná proto, že seznamy byly transformovány do objektů, a první ve frontě first out (FIFO) se používají podle potřeby dynamika datových typů ztratil svůj význam v souvislosti s popisem proměnných, ale získal jeho význam v době, kdy z těchto výrazů:. typ toto je určeno v době použití, a do této doby můžete popsat, co chcete a jak chcete.
    Ano, zásobník - co to je? Nyní víte, že tato otázka je nevhodná. Koneckonců, bez zásobníku není moderní programování. Volání funkce je přenos parametrů a návratových adres. Funkce může volat jinou funkci - je to opět přenos parametrů a návratová adresa. Zavést mechanismus s žádnými hodnotami zásobník volání - je práce navíc, ale proveditelné řešení je jistě možné.

    Mnozí se ptají: "Stack - co to je?". V kontextu volání funkce se skládá ze tří kroků:
  • uložení zpáteční adresu;
  • ukládání všech přenášených proměnných nebo adres na nich;
  • funkce volání.
  • Jakmile se volaná funkce plnit své poslání, to prostě vrátí řízení na oplátku. Funkce může způsobit libovolný počet dalších funkcí, protože omezení je překládáno pouze na velikoststack

    Stack vlastnosti

    Stack není abstraktní datový typ, ale skutečný mechanismus. Na úrovni procesoru je to "motor", který specifikuje a doplňuje práci hlavního cyklu procesoru. Jako bitová aritmetika stack zachycuje jednoduchá a zřejmá pravidla práce. Je to bezpečné a bezpečné.
    Charakteristické vlastnosti stohu jsou jeho velikost a délka prvků. Na úrovni procesoru je vše určeno bitovou, paměťovou a přístupovou fyzikou. Zajímavý rys a tradice: zásobník roste směrem dolů, tj. Směrem ke zmenšení adres paměti a paměti programů a dat. To je obvykle, ale ne nutně. Zde je důležitý obsah - přišel poslední a šel první. Toto překvapivě jednoduché pravidlo umožňuje vytvářet zajímavé algoritmy práce především v jazycích vysoké úrovně. Nyní nebudete žádat zásobník - co to je.
    Bezchybná hardwarová práce je už dlouhou dobu normou, ale na špičce informačních technologií, nápad zásobníku najde nové a slibné aplikace. V podstatě nezáleží na tom, co stack na úrovni procesoru. To je přirozená součást počítačové architektury. Programování však závisí na konkrétní aplikaci a schopnostech programátora.

    Pole, sbírky, seznamy, fronty Stack!

    Lidé často kladou otázky: "Stack - co to je?". "Programování" a "systematizace" jsou zajímavé pojmy: nejsou synonymem, ale jsou tak úzce propojeny. Programování bylo velmi rychlým, dlouhotrvajícím způsobem, jakým dosáhly summity, zdá se být dokonalé. S největší pravděpodobností to není. Ale samozřejmě jiné.

    Myšlenka zásobníku se stala samozřejmostínejen na úrovni různých programovacích jazyků, ale také na úrovni jejich konstrukcí a schopnosti vytvářet datové typy. Každé pole má push a pop a pojetí "prvního a posledního prvku pole" se stalo tradičním. Dříve existovaly jen prvky pole a dnes existují:
  • prvky pole;
  • první prvek pole;
  • Poslední prvek pole.
  • Funkce prostoru prvku v poli posune ukazatel a odstranění prvku od začátku pole nebo od jeho konce je důležité. V podstatě je to stejný zásobník, ale vztahuje se na jiné typy dat.
    Zvláště pozoruhodné je, že populární programovací jazyky nemají konstrukci stohu. Ale oni dávají jeho myšlenku vývojáři v plném rozsahu.

    Související publikace