Written for the student or professional interested in programming language design, this new book examines a wide range of programming language paradigms and issues, interspersing the discussion of these models with in-depth coverage of the key languages to reinforce them. The author begins his presentation with control structures and types, and then introduces the reader to seven programming paradigms: imperative, functional, object-oriented, dataflow, concurrent, logic, and aggregate-based. He concludes the book with a discussion of formal syntax and semantics.
Written for the student or professional interested in programming language design, this new book examines a wide range of programming language paradigms and issues. Author Raphael Finkel, University of Kentucky, intersperses the discussion of these models with in-depth coverage of the key languages to reinforce them. Finkel begins his presentation with control structures and types, and then introduces the reader to seven programming paradigms: imperative, functional, object-oriented, dataflow, concurrent, logic, and aggregate-based. He concludes the book with a discussion of formal syntax and semantics.
The author integrates this range of material by developing several themes, including the interplay between what can be done at compile time and what must be deferred to runtime; how patterns and pattern matching play a large role in programming languages; and the quest for uniformity seen in polymorphism. Written in a conversational style, this book challenges and encourages readers to launch into their own research in the field.
Features - Starts with a review of imperative programming languages.
- Illustrates and reinforces key programming paradigms with in-depth discussions of several languages:
- functional: ML, Lisp
- object-oriented: Simula, Smalltalk, C++
- dataflow: Val
- concurrent: CSP, Linda, SR
- logic: Prolog, Goedel
- aggregate-based: SNOBOL, Icon, APL, SQL, Mathematica
- Refers to over 70 languages, including well-known ones (Algol, Pascal, C, C++, LISP, Ada, FORTRAN); important but lesser-known ones (ML, SR, Modula-3, SNOBOL); significant research languages (CLU, Alphard, Linda); and little-known languages with important concepts (Io, CLP(R), Goedel).
- Moves beyond traditional material by challenging readers with more unusual constructs such as power loops, Io continuations, CLU iterators, and APL array manipulation.
- Contains an appendix listing further reading and source locations for language implementations and documentation.
- Includes review and challenge exercises in each chapter.
0805311912B04062001