Concepts of Programming Languages fourth edition, by Robert Sebesta. Addison Wesley Publishing.
Programming languages are a central tool for the computer scientist.
It is essential that students develop an understanding of how this tool is made, and the wide variety of language tools that are available. This course is a survey of important issues in programming language design and implementation including syntax, sematics, data typing, data structuring facilities, exception handling and sequence control, and how different programming languages and language paradigms deal with those issues. Students will study languages they have used extensively and will also learn languages they are unfamiliar with. Students should leave this course with a better idea of what a programming languages is, and how they are built. They should also develop an awareness of the large variety of languages that are available and the strengths and weaknesses of many of those languages.