This document provides a review for an exam on principles of programming languages. It includes examples of regular expressions for validating email addresses and creating a grammar for validating references in academic papers. It also shows handwritten notes on syntax diagrams and parse trees. The review covers topics that will be on the midterm exam such as defining tokens, drawing DFAs, and writing grammars.