Terms and Conditions:
Raphael A. Finkel wrote:Please check the readme file for updates and changes. The complete text of this book is intended for on-screen viewing free of charge; use of this material in any other format is subject to a fee.
This book stems in part from courses taught at the University of Kentucky
and at the University of Wisconsin–Madison
on programming language design. There are many good books that deal with the subject at an undergraduate level, but there are few that are suitable for a one-semester graduatelevel course. This book is the attempt to fill that gap.
The goal of the courses, and hence of this book, is to expose first-year graduate students to a wide range of programming language paradigms and issues, so that they can understand the literature on programming languages and even conduct research in this field. It should improve the students' appreciation of the art of designing programming languages and, to a limited degree, their skill in programming.
This book does not focus on any one language, or even on a few languages; it mentions, at least in passing, over seventy languages, including well known ones (Algol
, C, C++, LISP
, FORTRAN), important but less known ones (ML
), significant research languages (CLU
, Alphard, Linda), and little-known languages with important concepts (Io, Godel
). Several languages are discussed in some depth, primarily to reinforce particular programming paradigms. ML and LISP demonstrate functional programming, Smalltalk
and C++ demonstrate object-oriented programming, and Prolog demonstrates logic programming.
Students are expected to have taken an undergraduate course in programming languages before using this book. The first chapter includes a review of much of the material on imperative programming languages that would be covered in such a course. This review makes the book self-contained, and also makes it accessible to advanced undergraduate students.
:) "The author demonstrates a very strong knowledge of all concepts discussed in the book, and wording is very clear and concise. This is an excellent book for undergradute or graduate courses on programming languages."
:) "It is great for an undergraduate course on programming language topics (to show why things are not finished just in Computer Programming I) or even to stimulate graduate students to research in area. Perhaps not the best scientifically (Watt or Appel did better, yeat!), but is the best in motivation!"