The document describes pushdown automata (PDA) which are analogous to context-free languages in the same way that finite automata are analogous to regular languages. A PDA has states, input symbols, stack symbols, transition functions, an initial state, initial stack symbol, and accepting states. The transition function specifies state transitions based on the current state, input symbol, and top of stack symbol and can modify the stack. The document provides examples of PDAs for languages of the form wwr and balanced parentheses and discusses how PDAs work by changing their instantaneous descriptions as the input is processed and stack is modified.