Thread automaton


In automata theory, the thread automaton is an extended type of finite-state automata that recognizes a mildly context-sensitive language class above the tree-adjoining languages.

Formal definition

A thread automaton consists of
A path u1...unU* is a string of path components uiU; n may be 0, with the empty path denoted by ε.
A thread has the form u1...un:A, where u1...unU* is a path, and AN is a state.
A thread store S is a finite set of threads, viewed as a partial function from U* to N, such that dom is closed by prefix.
A thread automaton configuration is a triple, where denotes the current position in the input string, p is the active thread, and S is a thread store containing p.
The initial configuration is.
The final configuration is, where n is the length of the input string and u abbreviates δ.
A transition in the set Θ may have one of the following forms, and changes the current automaton configuration in the following way:SWAP Ba C: consumes the input symbol a, and changes the state of the active thread:SWAP Bε C: similar, but consumes no input:PUSH C: creates a new subthread, and suspends its parent thread:POP C: ends the active thread, returning control to its parent:SPUSH D: resumes a suspended subthread of the active thread:SPOP D: resumes the parent of the active thread:
One may prove that δ=u for POP and SPOP transitions, and δ=⊥ for SPUSH transitions.
An input string is accepted by the automaton if there is a sequence of transitions changing the initial into the final configuration.