Hridesh RajanExperiential Introduction to Principles of Programming Languages, An
Hridesh Rajan is Kingland Professor and Chair in the Department of Computer Science at Iowa State University. He has held visiting positions at the University of Bristol, Harvard University, and the University of Texas. He is a Fellow of the AAAS and a distinguished member of the ACM.
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