Concepts of Computer Programming Languages introduces students to the fundamental concepts of computer programming languages and provides them with the tools necessary to evaluate contemporary and future languages. Through a critical analysis of design issues, the text teaches students the essential differences between computing with specific languages, while the in-depth discussion of programming language structures also prepares them to study compiler design. The 12th Edition includes new material on contemporary languages like Swift and Python, replacing discussions of outdated languages. Features – Valuable historical foundations that set out the origins, purposes and contributions of the most important languages discussed in the rest of the text are introduced early on. In-depth discussions of the design issues faced by the early versions of relevant languages are presented in later chapters. Critical evaluation of existing and future programming languages gives students the necessary tools for evaluating on their own. An in-depth discussion of programming language structures, presenting a formal method of describing syntax and introducing approaches to lexical and syntax analysis, prepares students for the study of compiler design. Coverage of advanced object-oriented topics and languages is integrated throughout.