Eiffel: The Language (Prentice Hall object-oriented series) Paperback – 1 Oct 1992
Customers Who Bought This Item Also Bought
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
This book sets out to be two things: a user guide and also a specification of the Eiffel language, as it was defined at version 3. It's not quite rigorous enough to be a full spec, but adequate as a user guide. This is not a tutorial for beginning programmers, a very different kind of book, but it says at the outset that it was never meant for beginners. That's fair, since beginners and experienced programmers need quite different kinds of material for learning a language. The organization isn't all I could have asked for, but I could use it for wrting Eiffel programs if I had to.
The one thing that stands out in this book is its lengthy discussion of the typing system. That is well justified. Eiffel has the most complex type system I've seen, including parametric types (like C++ templates), multiple and repeated inheritance, and more than one scheme for creating aliases. Its repeated inheritance mechanism allows class B to claim class A as a superclass twice - like "diamond" inheritance in C++, but without the intermediate steps. That's where renaming comes in, creating ways to refer to the two different A superclasses unambiguously. Also, Eiffel allows a subclass to over-ride a function's return type - just to add flavor to the mix and complexity to the class-type rules. Once you combine parametric types, aliasing, and all the rest, type compatibility becomes a real hairball and is the subject of lengthy discussion. Despite its length, that discussion lacks clarity and examples, so I would expect a lot of ugly surprises if I tried doing serious work in this language.
The one serious omission here is lack of description of LACE - sort of a linker language for Eiffel, with a renaming facility of its own. Java and C# programmers won't even know what a linker is. Good. Since Eiffel requires LACE for just about any nontrivial application, however, something a bit more readable than appendix D would have been helpful. Another important idea is also weak or absent in this discussion: how name spaces are organized for projects so big that duplicate class names become likely. That may be a lack in Eiffel itself, though.
There's a lot to say about Eiffel, good, bad, and just puzzled. I'm not commenting on the language itself, here, except to say that I'm glad more recent languages are simpler, or at least put their complexity elsewhere.
I can't give this a ranking among other Eiffel books, because there are so very few others. It appears adequate as a reference for advanced programmers, but suffers from an inverted organization and thin discussion of some important topics.
I sympathize with the previous reviewer that was overwhelmed by the detail in this book. Please allow me to caution the would-be consumer. This book is not an object oriented tutorial. It is not an introduction to the language. If you would like either of these purchase Object Oriented Software Construction, 2e.
If you have more than a passing interest in Eiffel and would like a language reference, or if you are planning to implement your own compiler, this book is for you. While most of the information is still accurate, there have been many additions to the language that are not in the book. Minus one star for taking so long to provide an update.
This Eiffel is a Language born in France that can support .NET framework.
Eiffel can express specifications and constraints.
I first read the book in Japanese translation.