Content deleted Content added
Citation bot (talk | contribs) Add: s2cid. | You can use this bot yourself. Report bugs here. | Suggested by Chris Capoccia | via #UCB_toolbar |
Tom.Reding (talk | contribs) m Enum 1 author/editor WL; WP:GenFixes on |
||
Line 1:
[[File:Pushdown-overview.svg|thumb|right|A nested stack automaton has the same devices as a [[pushdown automaton]], but has less restrictions for using them.]]
In [[automata theory]], a '''nested stack automaton''' is a [[finite state machine|finite automaton]] that can make use of a [[Stack (data structure)|stack]] containing data which can be additional stacks.<ref name="aho">{{cite journal |last1=Aho |first1=Alfred V. |s2cid=685569 |authorlink1=Alfred Aho |title=Nested Stack Automata |journal=Journal of the ACM |date=July 1969 |volume=16 |issue=3 |pages=383–406 |doi=10.1145/321526.321529 }}
Like a [[stack automaton]], a nested stack automaton may step up or down in the stack, and read the current symbol; in addition, it may at any place create a new stack, operate on that one, eventually destroy it, and continue operating on the old stack. This way, stacks can be nested recursively to an arbitrary depth; however, the automaton always operates on the innermost stack only.
A nested stack automaton is capable of recognizing an [[indexed language]],<ref>
Nested stack automata should not be confused with [[embedded pushdown automata]], which have less computational power.{{citation needed|reason=The claim is currently supported only by the order in which both notions appear in the 'Automata theory: formal languages and formal grammars' overview table below.|date=February 2014}}
Line 42:
* ''Z''<sub>0</sub> ∈ Γ is the initial stack symbol,
* ''F'' ⊆ ''Q'' is the set of final states.
===Configuration===
A '''configuration''', or '''instantaneous description''' of such an automaton consists in a triple
Line 53 ⟶ 54:
* [''a''<sub>1</sub>''a''<sub>2</sub>...<u>''a''<sub>''i''</sub></u>...''a''<sub>''n''-1</sub>] is the input string; for convenience, ''a''<sub>0</sub> = [ and ''a''<sub>''n''</sub> = ] is defined<ref group=note>Aho originally used the left and right stack marker, viz. $ and ¢, as right and left input marker, respectively.</ref> The current position in the input, viz. ''i'' with 0 ≤ ''i'' ≤ ''n'', is marked by underlining the respective symbol.
* [''Z''<sub>1</sub>''X''<sub>2</sub>...<u>''X''<sub>''j''</sub></u>...''X''<sub>''m''-1</sub>''']''' is the stack, including substacks; for convenience, ''X''<sub>1</sub> = [''Z''<sub>1</sub> <ref group=note>The top symbol of a (sub)stack together with its preceding left endmarker "[" is viewed as a single symbol.</ref> and ''X''<sub>''m''</sub> = ''']''' is defined. The current position in the stack, viz. ''j'' with 1 ≤ ''j'' ≤ ''m'', is marked by underlining the respective symbol.
===Example===
An example run (input string not shown):
Line 113 ⟶ 115:
==Notes==
{{
==References==
{{Reflist}}
{{Formal languages and grammars}}
[[Category:Models of computation]]
[[Category:Automata (computation)]]
|