Programming Languages: Principles and Paradigms This self contained textbook assumes that the reader has some familiarity with one programming language and adopts a simple yet rigorous approach. The author explains the main programming paradigms (imperative object oriented functional and logic) and makes clear separation between the design implementation and pragmatic aspects of programming languages. As well as an excellent guide for undergraduates the content will also be useful for software practitioners who want to consolidate and update their knowledge of programming languages.