Chapter 1 Basic Principles of Programming Languages