Tree stack automaton
   HOME

TheInfoList



OR:

A tree stack automaton (plural: tree stack automata) is a
formalism Formalism may refer to: * Form (disambiguation) * Formal (disambiguation) * Legal formalism, legal positivist view that the substantive justice of a law is a question for the legislature rather than the judiciary * Formalism (linguistics) * Scie ...
considered in
automata theory Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory in theoretical computer science. The word ''automata'' comes from the Greek word αὐτόματο ...
. It is a
finite state automaton A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
with the additional ability to manipulate a
tree In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, including only woody plants with secondary growth, plants that are ...
-shaped stack. It is an automaton with storageScott, Dana (1967). ''Some Definitional Suggestions for Automata Theory''. Journal of Computer and System Sciences, Vol. 1(2), pages 187–212
doi:10.1016/s0022-0000(67)80014-x
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 grammarsDenkinger, Tobias (2016). ''An automata characterisation for multiple context-free languages''. Proceedings of the 20th International Conference on Developments in Language Theory (DLT 2016). Lecture Notes in Computer Science, Vol. 9840, pages 138–150
doi:10.1007/978-3-662-53132-7_12
(or linear context-free rewriting systems).


Definition


Tree stack

For a finite and non-empty set , a ''tree stack over '' is a tuple where * is a
partial function In mathematics, a partial function from a set to a set is a function from a subset of (possibly itself) to . The subset , that is, the domain of viewed as a function, is called the domain of definition of . If equals , that is, if is de ...
from strings of positive integers to the set with prefix-closed domain (called ''tree''), * (called ''bottom symbol'') is not in and appears exactly at the root of , and * is an element of the domain of (called ''stack pointer''). The set of all tree stacks over is denoted by . The set of ''predicates'' on , denoted by , contains the following unary
predicates Predicate or predication may refer to: * Predicate (grammar), in linguistics * Predication (philosophy) * several closely related uses in mathematics and formal logic: **Predicate (mathematical logic) **Propositional function **Finitary relation, ...
: * which is true for any tree stack over , * which is true for tree stacks whose stack pointer points to the bottom symbol, and * which is true for some tree stack if , for every . The set of ''instructions'' on , denoted by , contains the following partial functions: * which is the identity function on , * which adds for a given tree stack a pair to the tree and sets the stack pointer to (i.e. it pushes to the -th child position) if is not yet in the domain of , * which replaces the current stack pointer by (i.e. it moves the stack pointer to the -th child position) if is in the domain of , * which removes the last symbol from the stack pointer (i.e. it moves the stack pointer to the parent position), and * which replaces the symbol currently under the stack pointer by , for every positive integer and every .


Tree stack automata

A ''tree stack automaton'' is a 6-tuple where * , , and are finite sets (whose elements are called ''states'', ''stack symbols'', and ''input symbols'', respectively), * (the ''initial state''), * (whose elements are called ''transitions''), and * (whose elements are called ''final states''). A ''configuration of '' is a tuple where * is a state (the ''current state''), * is a tree stack (the ''current tree stack''), and * is a word over (the ''remaining word'' to be read). A transition is ''applicable'' to a configuration if * , * is true on , * is defined for , and * is a prefix of . The ''transition relation of '' is the binary relation on configurations of that is the union of all the relations for a transition where, whenever is applicable to , we have and is obtained from by removing the prefix . The ''language of '' is the set of all words for which there is some state and some tree stack such that where * is the
reflexive transitive closure In mathematics, a subset of a given set is closed under an operation of the larger set if performing that operation on members of the subset always produces a member of that subset. For example, the natural numbers are closed under addition, but n ...
of and * such that assigns for the symbol and is undefined otherwise.


Related formalisms

Tree stack automata are equivalent to
Turing machines A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algor ...
. A tree stack automaton is called ''-restricted'' for some positive natural number if, during any run of the automaton, any position of the tree stack is accessed at most times from below. 1-restricted tree stack automata are equivalent to
pushdown automata In the theory of computation, a branch of theoretical computer science, a pushdown automaton (PDA) is a type of automaton that employs a stack. Pushdown automata are used in theories about what can be computed by machines. They are more capab ...
and therefore also to
context-free grammars In formal language theory, a context-free grammar (CFG) is a formal grammar whose production rules are of the form :A\ \to\ \alpha with A a ''single'' nonterminal symbol, and \alpha a string of terminals and/or nonterminals (\alpha can be empt ...
. -restricted tree stack automata are equivalent to linear context-free rewriting systems and multiple context-free grammars of fan-out at most (for every positive integer ).


Notes


References

{{Formal languages and grammars Models of computation Automata (computation)