Automata theory 2026-11-05
Automata theory studies abstract machines, the formal languages they recognize and transformations between machine descriptions. The machine's permitted memory and transition rules determine its power. A finite-state automaton stores only one of finitely many states; a pushdown automaton additionally has a stack, while a Turing machine has unbounded working storage.
For example, a two-state finite-state automaton recognizes binary strings containing an even number of ones: reading1 switches state, reading0 preserves it, and the initial state is accepting. In contrast, recognizing all strings requires remembering an unbounded count, which a finite-state automaton cannot do. A pushdown automaton can push once per and pop once per . These comparisons separate language recognition from implementation details and motivate closure properties, minimization and decidability questions.
Formal language Created 2026-09-24 Updated 2026-11-05
A formal language over a fixed finite alphabet is a set of finite words. Here contains every finite word over , including the empty word . A formal language may contain finitely or infinitely many such words.[ref]
For example, over contains , ab and aaabbb, but not abab. The notation specifies a set of permitted words; it does not itself give a running time for deciding membership. The empty language contains no words, whereas contains one.
Concatenation of formal languages combines permitted words from two formal languages. Automata theory and computability theory ask which machine models can recognize such sets, while computational complexity theory asks what resources membership decisions require.
Jeffrey Shallit Created 2026-10-20 Updated 2026-11-05
Jeffrey Shallit studies combinatorics on words, formal languages, automata theory and algorithmic number theory. His work connects finite descriptions of sequences with arithmetic structure and algorithms for deciding properties of those sequences.
His personal page gives a useful caution about experimentation: an apparently valid linear recurrence for one integer sequence fails only at index 11056. Long numerical agreement can motivate a conjecture, but a mathematical proof needs a structural reason that the identity continues indefinitely.[ref]
Figure 1.
Portrait of Jeffrey Shallit
. Identified portrait on the author homepage; the page dates the photograph to 27 June 2024. Source.
Theoretical computer science Created 2026-09-24 Updated 2026-11-05
Theoretical computer science studies computation through mathematical models, algorithms and proofs. Computability theory asks which problems admit algorithms at all; computational complexity theory asks what resources solving them requires. Automata theory, mathematical logic and formal languages describe machines and representations. For example, a finite-state automaton recognizes a language using finitely many states, while a Turing machine provides a more general model with unbounded working storage. Separating a problem's specification from a particular implementation makes it possible to prove both algorithmic upper bounds and impossibility results.