🤖 AI Summary
This paper investigates language recognition for deterministic $d$-finite automata (DLAs) and their generalized $d(n)$-finite automata. For membership testing, we present the first strictly linear-time $O(n)$ recognition algorithm under the RAM model, overcoming a long-standing efficiency gap in the Hibbard–Pighizzini hierarchy. Our method integrates state compression encoding, input-driven traversal scheduling, and dynamic access-count management, supporting arbitrary computable memory-access bound functions $d(n)$. Unlike prior approaches limited to constant $d$, our algorithm uniformly and efficiently simulates both constant and non-constant $d(n)$, enabling hardware-friendly parsing for subclasses of deterministic context-free languages (DCFLs), such as LR(1) languages. This bridges the theoretical–practical divide between abstract automaton models and real-world linear-time parsing, establishing a novel, implementable paradigm grounded in rigorous automata theory.
📝 Abstract
A $d$-limited automaton is a Turing machine that uses only the cells with the input word (and end-markers) and rewrites symbols only in the first $d$ visits. This model was introduced by T. Hibbard in 1967 and he showed that $d$-limited automata recognize context-free languages for each $d geq 2$. He also proved that languages recognizable by deterministic $d$-limited automata form a hierarchy and it was shown later by Pighizzini and Pisoni that it begins with deterministic context-free languages (DCFLs) (for $d=2$). As well-known, DCFLs are widely used in practice, especially in compilers since they are linear-time recognizable and have the corresponding CF-grammars subclass (LR$(1)$-grammars). In this paper we present a linear time recognition algorithm for deterministic $d$-limited automata (in the RAM model) which opens an opportunity for their possible practical applications. We also generalize this algorithm to deterministic $d(n)$-limited automata: the extension of deterministic $d$-limited automata, where $d$ is not a constant, but a function depending on the input length $n$.