Stack: čo to je a aplikácia

Stoh je programovací fenomén a prirodzené riešenie. Hromada okamžite prišla do počítačového obchodu a stala sa tak "rodným", ako keby to všetko začalo.

Žiadny procesor nefunguje bez zásobníka, nie je žiadna rekurzia a efektívne funkcie hovoru nemôžu byť organizované. Každý algoritmus môže robiť bez frontu, zoznamu, kolekcie, poľa alebo systému organizovaných objektov, ale bez pamäte a zásobníka nič nefunguje, vrátane všetkého uvedeného.

Na začiatku začiatku: procesor, pamäť a zásobník

Ideálna pamäť umožňuje adresovanie priamo k hodnote - to sú stroje a jazyky vysokej úrovne. V prvom prípade procesor dôsledne presúva pamäťové adresy a spúšťa príkazy. V druhom prípade programátor manipuluje s poliami. V oboch prípadoch sú:
  • adresa = hodnota;
  • index = hodnota.
  • Adresa môže byť absolútna a relatívna, index môže byť digitálny a asociatívny. Adresa a index môžu mať inú adresu ako hodnotu, ale ide o detaily nepriameho adresovania. Bez pamäte procesor nemôže fungovať, ale bez stohu príkazov a dát - je to ako čln bez veslárskych. Stohovacie dosky - tradičný príbeh o podstate zásobníka: koncept stohu a preklad do všeobecného vedomia. Môžete si vziať talíř zospodu, môžete vziať len zhora a potom všetky taniere budú celé.
    Všetko, čo príde naposledy v zásobníku, je prvé. Ideálne riešenie. V podstate stoh, ako preklad jednej akcie do druhej, transformuje pojem algoritmu ako postupnosť operácií.

    Podstata a koncept hromady

    Procesor a pamäť -hlavné konštrukčné prvky počítača. Procesor vykonáva príkazy manipulovať adresy pamäti, načíta a zmení hodnotu týchto adries. V programovacom jazyku sa to všetko mení na premenné a ich významy. Podstatou stohu a koncept posledný v prvej von "(LIFO) zostáva nezmenená.


    , LIFO Skratka sa nepoužíva tak často ako predtým. Možno preto, že zoznamy boli transformované do objektov, a prvý vo fronte first out (FIFO) sa používajú podľa potreby dynamika dátových typov stratil svoj význam v súvislosti s popisom premenných, ale získal jeho význam v čase, keď z týchto výrazov :. typ toto je určené v čase použitia, a do tejto doby môžete popísať, čo chcete a ako chcete.
    Áno, stoh - čo je to? Teraz viete, že táto otázka je nevhodná. Koniec koncov, bez zásobníka nie je moderné programovanie. Volaním funkcie je prenos parametrov a návratových adries. Funkcia môže zavolať ďalšiu funkciu - je to opäť prenos parametrov a návratová adresa. Zaviesť mechanizmus so žiadnymi hodnotami zásobník volaní - je práca navyše, ale uskutočniteľné riešenie je určite možné.

    Mnohí sa opýtajú: "Stack - čo to je?". V kontexte volanie funkcie sa skladá z troch krokov:
  • uloženie spiatočnú adresu;
  • uloženie všetkých prenášaných premenných alebo adries na nich;
  • funkcia volania.
  • Akonáhle sa volané funkcie plniť svoje poslanie, to jednoducho vráti konanie na oplátku. Funkcia môže spôsobiť ľubovoľný počet ďalších funkcií, pretože obmedzenie sa prekrýva iba na veľkosťstack.

    Stack vlastnosti

    Stack nie je abstraktný dátový typ, ale skutočný mechanizmus. Na úrovni procesora ide o "motor", ktorý špecifikuje a dopĺňa prácu hlavného cyklu procesora. Ako bitová aritmetika, zásobník zachytáva jednoduché a zrejmé pravidlá práce. Je to bezpečné a bezpečné.
    Charakteristické vlastnosti stohu sú jeho veľkosť a dĺžka prvkov. Na úrovni procesora je všetko určené bitom, adresou pamäte a fyzikou prístupu. Zaujímavosťou a tradíciou je, že zásobník rastie smerom nadol, to znamená k zníženiu adresy pamäte a pamäti programov a dát. To je zvyčajne, ale nie nevyhnutne. Tu je dôležitý obsah - prišiel posledný, a išiel prvý. Toto prekvapujúco jednoduché pravidlo umožňuje vytvárať zaujímavé algoritmy práce najmä v jazykoch vyššej úrovne. Teraz sa nebudete pýtať stack - čo je to.
    Bezchybná hardvérová práca je už dávno normou, ale na špičke informačných technológií, nápad zásobníka nájde nové a sľubné aplikácie. V podstate nezáleží na tom, čo je zásobník na úrovni procesora. Je to prirodzená súčasť počítačovej architektúry. Programovanie však závisí od konkrétnej aplikácie a schopnosti programátora.

    Pole, kolekcie, zoznamy, fronty Stack!

    Často ľudia kladú otázky: "Stack - čo je to?". "Programovanie" a "systematizácia" sú zaujímavé koncepty: nie sú synonymom, ale sú tak úzko prepojené. Programovanie bolo veľmi rýchlym a dlhotrvajúcim spôsobom, ktorý dosiahol vrcholné stretnutia. S najväčšou pravdepodobnosťou to nie je. Ale samozrejme odlišné.

    Myšlienka zásobníka sa stala samozrejmosťounielen na úrovni rôznych programovacích jazykov, ale aj na úrovni ich konštrukcií a schopnosti vytvárať typy údajov. Akékoľvek pole má push a pop a pojem "prvý a posledný prvok poľa" sa stal tradičným. Predtým existovali len elementy poľa a dnes sú:
  • prvky poľa;
  • prvý prvok poľa;
  • Posledný prvok poľa.
  • Prevádzka priestoru prvku v poli posúva ukazovateľ a odstránenie prvku od začiatku poľa alebo od jeho konca je dôležité. V podstate je to ten istý stoh, ale platí aj pre iné typy údajov.
    Zvlášť pozoruhodné je, že populárne programovacie jazyky nemajú dizajn stackov. Ale oni dávajú jeho nápad developerovi v plnom rozsahu.

    Súvisiace publikácie