This concise introduction to the essential concepts in contemporary programming languages features a host of illustrative examples. It explains modern imperative, functional, and logic-based languages as well as giving readers the tools to design new ones.