В теории автоматов потоковый автомат (множественное число: автоматы) является расширенный тип конечных автоматов, который распознает умеренно контекстно-зависимый языковой класс над смежными с деревом языками.
A потоковый автомат состоит из
A путь u1... u n ∈ U - строка компонентов пути u i ∈ U; n может быть равно 0, а пустой путь обозначен ε. поток имеет вид u 1... u n : A, где u 1... u n ∈ U - путь, а A ∈ N - состояние. Хранилище потоков S - это конечный набор потоков, рассматриваемый как частичная функция от U до N, так что dom (S) закрыто на префикс.
A автомат потока конфигурация представляет собой тройку ‹l, p, S›, где l обозначает текущую позицию во входной строке, p - активный поток, а S - хранилище потоков, содержащее p. Первоначальная конфигурация - ‹0, ε, {ε: A S }›. Конечная конфигурация : ‹n, u, {ε: A S, u: A F }›, где n - длина входной строки, а u сокращает δ (A S). Переход в наборе Θ может иметь одну из следующих форм и изменяет текущую конфигурацию автомата следующим образом:
Можно доказать, что δ (B) = u для PO P и SPOP переходы, и δ (C) = ⊥ для SPUSHпереходов.
Входная строка принимается автоматом, если есть последовательность переходов, меняющих исходную конфигурацию на конечную.