Robert HarperCambridge University PressEdition: 2, 4/4/2016EAN 9781107150300, ISBN10: 1107150302Hardcover, 512 pages, 25.3 x 17.7 x 3.2 cmLanguage: EnglishThis text develops a comprehensive theory of programming languages based on type systems and structural operational semantics. Language concepts are precisely defined by their static and dynamic semantics, presenting the essential tools both intuitively and rigorously while relying on only elementary mathematics. These tools are used to analyze and prove properties of languages and provide the framework for combining and comparing language features. The broad range of concepts includes fundamental data types such as sums and products, polymorphic and abstract types, dynamic typing, dynamic dispatch, subtyping and refinement types, symbols and dynamic classification, parallelism and cost semantics, and concurrency and distribution. The methods are directly applicable to language implementation, to the development of logics for reasoning about programs, and to the formal verification language properties such as type safety. This thoroughly revised second edition includes exercises at the end of nearly every chapter and a new chapter on type refinements.1. Judgment and rules2. Statics and dynamics3. Total functions4. Finite data types5. Types and propositions6. Infinite data types7. Variable types8. Partiality and recursive types9. Dynamic types10. Subtyping11. Dynamic dispatch12. Control flow13. Symbolic data14. Mutable state15. Parallelism16. Concurrency and distribution17. Modularity18. Equational reasoning19. Appendices.