Adaptive automata for context-dependent languages

The present paper introduces the concept of adaptive automata as an alternative formal tool for describing context-dependent languages. This formal framework has the advantage of allowing easy mapping of a language description into an efficient parser for that language. Such a good performance is due to the potential hierarchical structure adaptive automata may exhibit, allowing natural construction of acceptors no more complex than strictly needed by each particular language. Efficiency is also due to the way adaptive automata operate, by changing according to its input, including and discarding transitions as needed to parse the particular input text adaptive automata start from an initial self-modifying version, and evolve through a path of intermediate configurations until a final configuration is reached, when the source text is exhausted. The evolution from an automaton's configuration to the next one may be designed to occur strictly when a construct is found which is not recognized by the current configuration of the automaton. So, one may view the acceptance of a particular sentence as a sequence of recognitions of its substrings, each operated by the corresponding configuration of the adaptive automaton. That offers a practical way for efficiently accepting context-dependent languages in a purely syntactical way, allowing full treatment for syntactical aspects of the language such as dynamic syntax and the socalled static semantics. Then, the use of adaptive automata brings the possibility of handling in a purelly syntactical way several autentically syntactical concepts, such as predefined words, symbol-tables, scoping, type-checking, argument-to-parameter matching, macro definitions and expansions, syntax macros for defining new language constructs, and many others, usually treated semantically, or resolved outside the parser.