- Zásobníkové programování je zvláštní paradigma
- Nízkoúrovňové
- zásobník … datová struktura LIFO
- čili máme jen 2 operace -
push
a pop

- Můžeme simulovat zásobníkový stroj, který vše řeší přes pouze zásobníky (může jich být více)
rslt
… zásobník na data
exec
… zásobník na kód programu, který se vykonává
- stroj pracuje iterativně po jednotlivých krocích
- obvykle používá postfixovou notaci
- Bytecody některých programovací jazyků používají zásobníkový stroj (Python, Java, .NET)
- Zásobník má omezenou velikost ⟶ může dojít ⟶ problém stack overflow
Popis práce zásobníkového paradigmatu
- Datový zásobník je prádzný, vše je na programovém
- V každém kroku se odebere prvek z programového zásobníku a podle jeho typu se vykoná akce
- Je-li to hodnota, ulož ho na vrchol datového zásobníku
- Je-li to slovo, znamená to instrukci pro stroj co má dělat (provádění akce s oběma zásobníky)
- Program končí po vyprázdnění programového zásobníku a výsledek je na vrcholu datového
- Konkrétní příklad programu
- program:
5 3 :- 4 :*
(5
je na vrcholu)
- 5 se přesune na datový zásobník
- 3 se přesune na datový zásobník
- :- je slovo, vypustí z datové zásobníku dvě čísla a uloží tam jejich rozdíl (tedy 2)
- 4 se přesune na datový zásobník
- :* je slovo, vypustí z datové ho zásobníku dvě čísla a uloží tam jejich součin (tedy 8)
- Vhodné jsou obrázky pro znázornění a krokování