Description
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.
Table of Contents
List of Figures xiii
List of Tables xvii
Preface xix
Road Map xxii
I Preliminaries 1
1 Introduction 3
2 Inductive Sets and Functions 15
II Building a Programming Language 33
3 Getting Started 35
4 Varlang: A Language with Variables 71
5 Definelang: A Language with Global Variables 95
6 Funclang: A Language with Functions 105
III References and Concurrency 145
7 Reflang: A Language with References 147
8 Forklang: A Language with Concurrency and Parallelism 169
IV Types and Specifications 185
9 Typelang: A Language with Types 187
10 Speclang: A Language with Specifications 209
V Advances Features 229
11 Msglang: A Language with Message-Passing Concurrency 231
12 Eventlang: A Language with Events 251
Appendix ANTLR: A Brief Review 265
Bibliography 269
Index 271