GetTextbooks.co.uk  
 Compare Prices & Save up to 90%
Search by ISBN, title, author, etc ...

Login | Sign up | My Wish List  


Essentials of Programming Languages - 2nd Edition

by Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes

ISBN-10: 9780262062176
ISBN-10: 0-262-06217-8
ISBN-13: 9780262062176
ISBN-13: 978-0-262-06217-6
Hardcover
2001-01-29
The MIT Press


Find Lowest Price

Editorials


Product Description
This textbook offers a deep understanding of the essential concepts of programming languages. The approach is analytic and hands-on. The text uses interpreters, written in Scheme, to express the semantics of many essential language elements in a way that is both clear and directly executable. It also examines some important program analyses. Extensive exercises explore many design and implementation alternatives.

Reviews


very methodical and simple
its really a nice book to start with functional programming and thinkin in terms of recursion. you can easily write a cool interpreter by following this book cover to .... doesnt explain lambda calculus and combinators in much detail though

Good balance of formal and layman language
I enjoyed this book's implementation-oriented approach to teaching language constructs, in the tune of such classics as SICP. The book title is misleading in that this book focuses almost exclusively on functional languages. But within that realm, it admittedly does cover a broad range of features. The book has just the right amount of formal notation to insure relative completeness, but not so much as to scare away unfamiliar readers. I think it's a nice gentle introduction to the whole field.

As I alluded to, the only reason I didn't give this a 5-star is the slightly misleading general-purposeness appeal, even though it really is entirely functional-oriented. Other than that, the book was a great read.

An Almost Perfect Book
This book is invaluable to someone who is trying to understand how computer languages really work.

The Good
1. Very comprehensive .Covers a whole gamut of programming language features.By the time you finish the book you will have built interpreters which demonstrate recursion, call-by-value/reference/need and name semantics, class based and prototype based OO, type inference ,Continuations etc .

2. Very "Hands on" . You are taught how programming languages work by actually building intrepreters (in other words an Operational Semantics is used) .This is the best way to learn .

3.Environments and Continuations are explained extremely well.

4.Lots of exercises which explore design alternatives . For example the main flow deals with lexical binding of variables, with dynamic binding left as an exercise.

The Bad
1. A certain knowledge of scheme (let letrec, cond) etc is assumed (The First edition was better in this respect and was more self contained)

2.The writing is sometimes unnecessarily dense with long sentences and slighly disjonted paragraphs.

3.some essential features of a language design (eg: memory management ) are skipped entirely.While this is understandable from the pov of reducing the length of the book, it also means that one needs to read supplementary material before one can write real life interpreters.

4.Some parts of the interpretation/compilation process are skipped entirely or treated through "magic". For example the book provides practically no explanation of lexing or parsing and some "magic " code (SLLGEN) is used .The examples for using this framework are thoroughly inadequate.It is better to skip using this framework and just use list syntax and the read functionality of scheme .

Summary

With all its faults (which will probably get fixed in the next edition ) this is an incredible book and should be part of the library of every programmer interested in learning how languages work. As far as i know there isn't a single other book that can do better in conveying how various features of languages really work and interact .

While this book may not be suitable for an undergraduate course of study(withoout an excellent teacher to help students get ove r the difficult bits) it is ideal for the self taught programmer .

If you don't mind reading extra material/browsing the web to supplement this book, just buy it.

Be sure to have your dictionary on hand while reading...
I honestly don't understand why professors choose this book to teach programming language concepts/semantics. The best books to learn from are written in simple, easy to read language, and with a well-designed index. EOPL lacks both of these attributes.

As a part of the class we had to take reading quizzes on each section, meaning we had to read this book cover to cover. Friedman used complex, difficult to understand language to teach concepts that themselves were difficult to grasp. To make matters worse, the professor simply read from the book during lecture, failing to clarify the mysteries created by Friedman.

An optional book for the class was Programming Language Pragmatics. It explained the implementations of Object Oriented languages, type checking, assembly, etc. using multiple languages people have used before, unlike scheme. I would suggest looking at that book before choosing EOPL.


excellent
I had a lot of fun going through the book and following the steps to build an increasingly sophisticated language interpreter.
Now if only I can get a job writing scheme/lisp code, I'll be all set.


Home | Browse | Professors | Merchants | Webmasters | Contact Us

[ United States | Canada ]

Copyright © 2003-2008 GetTextbooks.co.uk