A textbook that uses a hands-on approach to teach principles of programming languages, with Java as the implementation language.
This introductory textbook uses a hands-on approach to teach the principles of programming languages. Using Java as the implementation language, Rajan covers a range of emerging topics, including concurrency, Big Data, and event-driven programming. Students will learn to design, implement, analyze, and understand both domain-specific and general-purpose programming languages.
Develops basic concepts in languages, including means of computation, means of combination, and means of abstraction.
Examines imperative features such as references, concurrency features such as fork, and reactive features such as event handling.
Covers language features that express differing perspectives of thinking about computation, including those of logic programming and flow-based programming.
Presumes Java programming experience and understanding of object-oriented classes, inheritance, polymorphism, and static classes.
Each chapter corresponds with a working implementation of a small programming language allowing students to follow along.