![]() | ||
A tree stack automaton (plural: tree stack automata) is a formalism considered in automata theory. It is a finite state automaton with the additional ability to manipulate a tree-shaped stack. It is an automaton with storage whose storage roughly resembles the configurations of a thread automaton. A restricted class of tree stack automata recognises exactly the languages generated by multiple context-free grammars (or linear context-free rewriting systems).
Contents
Tree stack
For a finite and non-empty set Γ, a tree stack over Γ is a tuple (t, p) where
The set of all tree stacks over Γ is denoted by TS(Γ).
The set of predicates on TS(Γ), denoted by Pred(Γ), contains the following unary predicates:
for every γ ∈ Γ.
The set of instructions on TS(Γ), denoted by Instr(Γ), contains the following partial functions:
for every positive integer n and every γ ∈ Γ.
Tree stack automata
A tree stack automaton is a 6-tuple A = (Q, Γ, Σ, qi, δ, Qf) where
A configuration of A is a tuple (q, c, w) where
A transition τ = (q1, u, p, f, q2) is applicable to a configuration (q, c, w) if
The transition relation of A is the binary relation ⊢ on configurations of A that is the union of all the relations ⊢τ for a transition τ = (q1, u, p, f, q2) where, whenever τ is applicable to (q, c, w), we have (q, c, w) ⊢τ (q2, f(c), v) and v is obtained from w by removing the prefix u.
The language of A is the set of all words w for which there is some state q ∈ Qf and some tree stack c such that (qi, ci, w) ⊢* (q, c, ε) where
Related formalisms
Tree stack automata are equivalent to Turing machines.
A tree stack automaton is called k-restricted for some positive natural number k if, during any run of the automaton, any position of the tree stack is accessed at most k times from below.
1-restricted tree stack automata are equivalent to pushdown automata and therefore also to context-free grammars. k-restricted tree stack automata are equivalent to linear context-free rewriting systems and multiple context-free grammars of fan-out at most k (for every positive integer k).