The design and implementation of programming languages, from Fortran and Cobol to Caml and Java, has been one of the key developments in the management of ever more complex computerized systems. Introduction to the Theory of Programming Languages gives the reader the means to discover the tools to think, design, and implement these languages.It proposes a unified vision of the different formalisms that permit definition of a programming language: small steps operational semantics, big steps operational semantics, and denotational semantics, emphasising that all seek to define a relation between three objects: a program, an input value, and an output value. These formalisms are illustrated by presenting the semantics of some typical features of programming languages: functions, recursivity, assignments, records, objects, ... showing that the study of programming languages does not consist of studying languages one after another, but is organized around the features that arepresent in these various languages. The study of these features leads to the development of evaluators, interpreters and compilers, and also type inference algorithms, for small languages.
From the reviews:
"The book is divided into eight chapters and an epilogue. ... Faculty teaching an undergraduate programming languages course may find this book to be a useful reference. Summing Up: Recommended. Upper-division undergraduates through professionals/practitioners." (J. Beidler, Choice, Vol. 48 (10), June, 2011)
"It is a short book--of about 100 pages--consisting of eight chapters and an epilogue. The book focuses on the formal description of programming language semantics and compilation using denotational semantics, small-step operational semantics (reduction semantics), and big-step operational semantics (natural semantics). ... The book provides a good description of programming language concepts and motivates the necessary theory well. ... The book is suitable for both professionals and graduate- and advanced undergraduate-level classes." (Michael Oudshoorn, ACM Computing Reviews, November, 2011)
"The book is divided into eight chapters and an epilogue. ... Faculty teaching an undergraduate programming languages course may find this book to be a useful reference. Summing Up: Recommended. Upper-division undergraduates through professionals/practitioners." (J. Beidler, Choice, Vol. 48 (10), June, 2011)
"It is a short book--of about 100 pages--consisting of eight chapters and an epilogue. The book focuses on the formal description of programming language semantics and compilation using denotational semantics, small-step operational semantics (reduction semantics), and big-step operational semantics (natural semantics). ... The book provides a good description of programming language concepts and motivates the necessary theory well. ... The book is suitable for both professionals and graduate- and advanced undergraduate-level classes." (Michael Oudshoorn, ACM Computing Reviews, November, 2011)