V teorii automatů je zásobníkový automat konečný stavový automat , který používá zásobník k ukládání stavů.
Na rozdíl od běžných konečných automatů je zásobníkový automat množina [1]
kde
K je konečná množina stavů automatu, je jediný povolený počáteční stav automatu, — množina konečných stavů a F=Ø a F=K jsou přípustné, Σ je platná vstupní abeceda, ze které se tvoří řetězce, které automat čte, S - abeceda paměti (ukládání), je znak nulové paměti.Paměť funguje jako zásobník , to znamená, že poslední zapsaný prvek je k dispozici pro čtení. Přechodová funkce je tedy mapování . To znamená, že na základě kombinace aktuálního stavu, vstupního symbolu a symbolu v horní části úložiště vybere automat další stav a případně symbol, který se má do úložiště zapsat. V případě, že je přítomen v pravé části pravidla automatu , není do úložiště nic přidáno a prvek shora je vymazán. Pokud je úložiště prázdné, spustí se pravidla c na levé straně.
Třída jazyků rozpoznávaných zásobníkovými automaty je stejná jako třída bezkontextových jazyků .
V čisté formě se push-pull automaty používají jen zřídka. Typicky se tento model používá k vizualizaci rozdílu mezi obyčejnými konečnými automaty a syntaktickými gramatikami . Implementace zásobníkových automatů se liší od konečných automatů tím, že aktuální stav automatu silně závisí na jakémkoli předchozím.
Existují deterministické a nedeterministické zásobníkové automaty.
Pro nedeterministické automaty (na rozdíl od deterministických) existují dvě ekvivalentní ukončovací kritéria:
Deterministický automat končí, až když dosáhne konečného stavu.
Formální jazyky a formální gramatiky | |
---|---|
Obecné pojmy | |
Typ 0 | |
Typ 1 |
|
Typ 2 | |
Typ 3 | |
rozebrat |