This book continues to reflect our experience that topics once considered too advanced can be taught in the first course. The text addresses metalanguages explicitly as the formal means of specifying programming language syntax