In Chap. 3 we studied finite automata, which have a finite amount of memory. In this chapter we introduce a new type of computational model called a pushdown automaton, which can be obtained by giving a nondeterministic finite automaton a memory component called a stack. The stack memorizes an arbitrarily long string, but has the restriction that a symbol must be read and written at one end of the string. It will be shown that a pushdown automaton and a context-free grammar are equivalent in power to specify languages.