

Desertcart purchases this item on your behalf and handles shipping, customs, and support to Morocco.
This text develops a comprehensive theory of programming languages based on type systems and structural operational semantics. Language concepts are precisely defined by their static and dynamic semantics, presenting the essential tools both intuitively and rigorously while relying on only elementary mathematics. These tools are used to analyze and prove properties of languages and provide the framework for combining and comparing language features. The broad range of concepts includes fundamental data types such as sums and products, polymorphic and abstract types, dynamic typing, dynamic dispatch, subtyping and refinement types, symbols and dynamic classification, parallelism and cost semantics, and concurrency and distribution. The methods are directly applicable to language implementation, to the development of logics for reasoning about programs, and to the formal verification language properties such as type safety. This thoroughly revised second edition includes exercises at the end of nearly every chapter and a new chapter on type refinements. Review: It shipped on time - It was a gift so I really cannot review it. Review: Five Stars - Perfect book in perfect condition
| Best Sellers Rank | #382,916 in Books ( See Top 100 in Books ) #596 in Computer Programming Languages #859 in Programming Languages (Books) |
| Customer Reviews | 4.4 out of 5 stars 22 Reviews |
B**E
It shipped on time
It was a gift so I really cannot review it.
A**T
Five Stars
Perfect book in perfect condition
P**B
Beautiful material, masterful presentation.
His definitions are accurate, concise and elegant. That is a sign he really knows what he's talking about. Usually competency is directly proportional to how long authors' explanations are. I've noticed this when reading Errett Bishop, D.E. Knuth, R.P. Stanley, and others. If you believe that criterion, Professor Harper's extremely competent. If you're new to programming language theory, heed his words about the book. When asked on Quora regarding the book's prerequisites: "Just an appreciation for a rigorous mathematical perspective on things, but no mathematics in particular is required. It would be good to have experience proving theorems about just about anything, just so you're practiced in the art of rigorous thinking. The book is very dense with information, and very concise in its presentation of ideas. It demands, and rewards, careful study. It cannot be appreciated casually." As it should be. Take that advice seriously. This is my first exposure to programming language theory; be ready to work. Part I's fairly technical, and even Professor Harper recommends skipping to Part II, skimming Part I and returning to it as necessary. Fully understanding Part I is required to fully appreciate subsequent chapters. (If you're new to programming in general (as I somewhat am), I highly recommend downloading a copy of his "Programming in Standard ML". If it's meant to be an introductory programming book, it's the best one I've read. Many non-trivial examples are presented throughout, and illustrate how beautiful SML is. It truly is a "high level" language. Many of the code examples have greatly helped me and how I approach programming. He's very detailed when teaching students how to develop, specify, and refine programs. He sometimes goes down incorrect lines of reasoning when programming, shows the mistake(s) made, and WHY they're mistakes. He also teaches WHY specifications are important, and how to CORRECTLY develop them. Examples of this are the GCD-calculating and regular expression matcher programs. After reading this "book", C++, Java, Python and some other languages' crappiness becomes (even more?) obvious. That said, I've never ran into a bad SML book. From the Standard Basis Library through Harper, Paulson, and Ullman, they're all outstanding.) A "link" to some of its solutions: httpwwwcscmuedu/~rwh/pfpl/solnspdf I haven't finished reading the book. I'll periodically update this review. If the quality of the book's consistent throughout, it'll be marvelous; so far, it has been. His style is impeccable, material well presented, and subject matter captivating. Thank you, Professor Harper. I look forward to subsequent editions and future titles!
A**R
I'm sure the author has great and comprehensive knowledge of this area
I'm sure the author has great and comprehensive knowledge of this area. But it is not user friendly at all. Most places which need proofs simply says, it is clear that, it is easy to show that, or proceed by induction... There is very few intuition or explanations given in the text, most are just facts and definitions presented in a very formal and sometimes confusing way. Most of the time after I actually grasp the material, I feel I can explain the concept in a much more easier to understand way, instead of spending hours trying to decode some obscure sentence in this text. That said, this book is very authoritative and reflects professor harper's deep understanding of the area. Perhaps it is meant to be a supplementary textbook for class, so that you could ask questions to TA's and professors if you are confused. Too bad my professor this semester fails to explain anything and 99% of the class is utterly confused. CMU students who wish to take 312, be warned, not every professor can handle this course.
P**N
Too complicated
The name is “practical foundation” but the first chapter (I haven’t finished chapter 1 yet) is too abstract. I do not hate abstract stuff only if they are deemed necessary and contain important information. My feeling is that unfortunately the material in the first chapter belongs to what mathematicians call “abstract nonsense”: very contrived way to say something really simple. For example, so many notations are used to define substitution of indeterminate by variable. In the meantime, some terms are used without definition like “operators has a sort”. What is a sort? I can guess but the chain of rigour breaks at its weakest point.
Trustpilot
2 weeks ago
3 weeks ago