Nested stack automaton

Last updated
A nested stack automaton has the same devices as a pushdown automaton, but has less restrictions for using them. Pushdown-overview.svg
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 automaton that can make use of a stack containing data which can be additional stacks. [1] 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.

Contents

A nested stack automaton is capable of recognizing an indexed language, [2] and in fact the class of indexed languages is exactly the class of languages accepted by one-way nondeterministic nested stack automata. [1] [3]

Nested stack automata should not be confused with embedded pushdown automata, which have less computational power.[ citation needed ]

Formal definition

Automaton

A (nondeterministic two-way) nested stack automaton is a tuple Q,Σ,Γ,δ,q0,Z0,F,[,],] where

   Q × Σ' × [Γinto subsets of Q × D × [Γ * (pushdown mode),
Q × Σ' × Γ'into subsets of Q × D × D(reading mode),
Q × Σ' × [Γ'into subsets of Q × D × {+1}(reading mode),
Q × Σ' × {]}into subsets of Q × D × {-1}(reading mode),
Q × Σ' × (Γ' ∪ [Γ')into subsets of Q × D × [Γ*](stack creation mode), and
Q × Σ' × {[]}into subsets of Q × D × {ε},(stack destruction mode),
Informally, the top symbol of a (sub)stack together with its preceding left endmarker "[" is viewed as a single symbol; [4] then δ reads
  • the current state,
  • the current input symbol, and
  • the current stack symbol,
and outputs
  • the next state,
  • the direction in which to move on the input, and
  • the direction in which to move on the stack, or the string of symbols to replace the topmost stack symbol.

Configuration

A configuration, or instantaneous description of such an automaton consists in a triple q, [a1a2...ai...an-1], [Z1X2...Xj...Xm-1], where

Example

An example run (input string not shown):

ActionStepStack
1:    [ab[k][p]c] 
create substack    2:[ab[k][p[rs]]c]
pop3:[ab[k][p[s]]c] 
pop4:[ab[k][p[]]c] 
destroy substack5:[ab[k][p]c] 
move down6:[ab[k][p]c] 
move up7:[ab[k][p]c] 
move up8:[ab[k][p]c] 
push9:[ab[k][nop]c] 

Properties

When automata are allowed to re-read their input ("two-way automata"), nested stacks do not result in additional language recognition capabilities, compared to plain stacks. [5]

Gilman and Shapiro used nested stack automata to solve the word problem in virtually free groups, similarly to the Muller–Schupp theorem. [6]

Notes

  1. Aho originally used "$", "¢", and "#" instead of "[", "]", and "]", respectively. See Aho (1969), p.385 top.
  2. Juxataposition denotes string (set) concatenation, and has a higher binding priority than set union ∪. For example, [Γ' denotes the set of all length-2 strings starting with "[" and ending with a symbol from Γ'.
  3. Aho originally used the left and right stack marker, viz. $ and ¢, as right and left input marker, respectively.
  4. The top symbol of a (sub)stack together with its preceding left endmarker "[" is viewed as a single symbol.

References

  1. 1 2 Aho, Alfred V. (July 1969). "Nested Stack Automata". Journal of the ACM. 16 (3): 383–406. doi: 10.1145/321526.321529 . S2CID   685569.
  2. Partee, Barbara; Alice ter Meulen; Robert E. Wall (1990). Mathematical Methods in Linguistics . Kluwer Academic Publishers. pp.  536–542. ISBN   978-90-277-2245-4.
  3. John E. Hopcroft, Jeffrey D. Ullman (1979). Introduction to Automata Theory, Languages, and Computation . Addison-Wesley. ISBN   0-201-02988-X. Here:p.390
  4. Aho (1969), p.385 top
  5. Beeri, C. (June 1975). "Two-way nested stack automata are equivalent to two-way stack automata". Journal of Computer and System Sciences. 10 (3): 317–339. doi: 10.1016/s0022-0000(75)80004-3 .
  6. Shapiro, Robert Gilman Michael (4 December 1998). On groups whose word problem is solved by a nested stack automaton (Technical report). arXiv: math/9812028 . CiteSeerX   10.1.1.236.2029 . S2CID   12716492.