Questions: Automata Fundamentals and Computational Models
5 questions to test your understanding
Score: 0 / 5
Question 1 Multiple Choice
You need to build a system that accepts strings representing valid arithmetic expressions with arbitrarily nested parentheses, like ((a+b)*c). Which automaton model is minimally sufficient?
AA finite automaton with enough states to track the maximum expected nesting depth
BA pushdown automaton, because matching nested parentheses requires a stack to remember how many are open
CA Turing machine, because arithmetic requires computation beyond pattern recognition
DA finite automaton with a large enough alphabet to encode parenthesis depth
Balanced parentheses require counting to arbitrary depth — you need to remember how many open parentheses are waiting to be closed, and this count is unbounded. A finite automaton has only a fixed number of states, which limits how high it can effectively 'count'; it cannot handle arbitrarily deep nesting. A pushdown automaton's stack provides exactly the memory needed: push for each open parenthesis, pop for each close. Option A is wrong because the nesting can be arbitrarily deep and finite states cannot handle this. Option C is overkill — a PDA suffices.
Question 2 Multiple Choice
Theorists prove that no finite automaton can recognize the language {aⁿbⁿ | n ≥ 1} (equal numbers of a's followed by equal numbers of b's). What does this proof tell us?
AThat more research is needed — perhaps a sufficiently clever finite automaton will eventually be found
BThat the language requires at least 2n states to recognize strings of length 2n
CThat no finite automaton, regardless of number of states or transition design, can ever correctly recognize this language
DThat finite automata can recognize this language for fixed n, but not for variable n
Automata theory provides provable limits, not empirical ones. Using the pumping lemma (or other formal arguments), one can prove that {aⁿbⁿ} is not a regular language — meaning no finite automaton can recognize it, period. This is not 'we haven't found one yet' but a mathematical proof that such a machine cannot exist. Option A is wrong precisely because the proof closes off the search. Option D misunderstands the language — 'variable n' is the point of the proof. This is the theoretical power of automata: it replaces heuristic searching with certainty.
Question 3 True / False
A finite automaton with no memory beyond its current state can still recognize the language of all binary strings containing an even number of 1s.
TTrue
FFalse
Answer: True
This is an important insight: 'even number of 1s' seems to require counting, but a two-state automaton suffices. State 0 means 'even number of 1s seen so far' (the start and accept state); State 1 means 'odd number of 1s seen so far.' Reading a 0 keeps you in the same state; reading a 1 flips you to the other state. The parity information is encoded in which state you are in, not in a counter. Finite automata are surprisingly capable when the language property can be expressed as a finite set of conditions on the 'current status' — they just cannot count to unbounded depth.
Question 4 True / False
Because a Turing machine has an infinite tape, it can generally recognize any language — there is no language that even a Turing machine cannot decide.
TTrue
FFalse
Answer: False
There exist languages that no Turing machine can decide — the most famous being the halting problem. A Turing machine cannot always determine whether another Turing machine will halt or loop forever on a given input. This is not a practical limitation but a proven mathematical impossibility (Turing, 1936). The Chomsky hierarchy distinguishes recursively enumerable languages (which a Turing machine can recognize) from non-recursively-enumerable languages (which no algorithm can decide). The Turing machine is the most powerful model in the hierarchy, but it is not omnipotent.
Question 5 Short Answer
Why is it theoretically significant to prove that no finite automaton can recognize a particular language, rather than simply saying 'we haven't found the right automaton yet'?
Think about your answer, then reveal below.
Model answer: A proof that no finite automaton recognizes a language is a statement about the computational power of the entire model, not just about our ingenuity in searching. Tools like the pumping lemma prove that any language requiring unbounded memory to decide cannot be recognized by any finite automaton, no matter how many states or how clever the transition function. This certainty is the foundation of complexity theory and compiler design: it tells engineers not just 'try harder' but 'use a more powerful model.' Without such proofs, we could waste effort searching for impossible solutions. The hierarchy of automata models — FA, PDA, TM — is defined precisely by these provable limits.
This is the deep answer to 'why study abstract machines instead of just writing programs.' Automata theory converts open-ended searching into mathematical closure. The same kind of reasoning underlies undecidability results like the halting problem and incompleteness theorems in logic: they prove that certain problems are not merely hard but fundamentally unsolvable by any algorithm.