Abstract
A number of individual concepts embodied in Eiffel were present in previous languages, notably Simula 67, Ada and Alphard. However the design has brought in many new contributions.
From the language standpoint, one may quote the safe treatment of multiple inheritance through renaming, the combination between genericity and inheritance, disciplined polymorphism by explicit redefinition, the integration of the assertion/invariant mechanism with inheritance, a clean interface with external routines, and the introduction of full static typing into an object-oriented language with multiple inheritance.
From the implementation standpoint, a number of our solutions are original: constant-time routine access, separate compilation with automatic configuration management in an object-oriented world, support for debugging and automatic interface documentation, support for the preparation of deliverable software packages.
More generally, we believe quite frankly that Eiffel is the first full-scale effort enabling developers of practical software systems to take advantage of object-oriented techniques in a manner consistent with the newest concepts of software engineering.
We first designed Eiffel for our own needs as software developers and, now that we have used it extensively for small and large developments alike, we wouldn't trade it for anything else. We hope that this article will have inoculated the reader with at least some of our enthusiasm.
Trademarks: Unix (AT&T Bell Laboratories); Ada (AJPO); Objective C (Productivity Products International); VAX (Digital Equipment Corporation); Smalltalk (Xerox); Eiffel (Interactive Software Engineering, Inc.).
Preview
Unable to display preview. Download preview PDF.
References
Graham Birtwistle, Ole-Johan Dahl, Bjorn Myrhaug, and Kristen Nygaard, Simula Begin, Studentliteratur and Auerbach Publishers, 1973.
Daniel G. Bobrow and M.J. Stefik, LOOPS: an Object-Oriented Programming System for Interlisp, Xerox PARC, 1982.
H.I. Cannon, “Favors,” Technical Report, MIT Artificial Intelligence Laboratory, Cambridge (Massachussets), 1980.
Brad J. Cox, Object-Oriented Programming: An Evolutionary Approach, Addison-Wesley, Reading (Massachusetts), 1986.
S.C. Dewhurst, “Object Representation of Scope during Translation,” in ECOOP 87: European Conference on Object-Oriented Programming, Paris, June 1987.
Adele Goldberg and David Robson, Smalltalk-80: The Language and its Implementation, Addison-Wesley, Reading (Massachusets), 1983.
Jean-Marie Hullot, “Ceyx, Version 15: I-une Initiation,” Rapport Technique no. 44, INRIA, Rocquencourt, Eté 1984.
Interactive Software Engineering, Inc., “Eiffel Library Manual,” Technical Report TR-EI-7/LI, 1986.
Bruce W. Lampson, Jim J. Horning, Ralph L. London, J. G. Mitchell, and Gerard L. Popek, “Report on the Programming Language Euclid,” SIGPLAN Notices, vol. 12, no. 2, pp. 1–79, February 1977.
Bertrand Meyer, “Quelques concepts importants des languages de programmation modernes et leur expression en Simula 67,” Bulletin de la Direction des Etudes et Recherches d'Electricité de France, Série C (Informatique), no. 1, pp. 89–150, Clamart (France), 1979. Also in GROPLAN 9, AFCET, 1979.
Bertrand Meyer, “M: A System Description Method,” Technical Report TRCS85-15, University of California, Santa Barbara, Computer Science Department, August 1986. Submitted for publication.
Bertrand Meyer, “Eiffel: A Language and Environment for Software Engineering,” The Journal of Systems and Software, 1987. To appear.
Bertrand Meyer, “Genericity, static type checking, and inheritance,” The Journal of Pascal, Ada and Modula-2, 1987. To appear (Revised version of paper in ACM OOPSLA conference proceedings, Portland, Oregon, September 1986, pp. 391–405).
Bertrand Meyer, Reusability: the Case for Object-Oriented Design, 4, pp. 50–64, IEEE Software, March 1987.
Bertrand Meyer, Object-oriented Software Construction, 1987. To appear
Bertrand Meyer, “Eiffel: Programming for Reusability and Extendibility,” ACM Sigplan Notices, February 1987, vol. 22, no. 2, pp. 85–94, 1987a.
Craig Schaffert, Topher Cooper, Bruce Bullis, Mike Kilian, and Carrie Wilpolt, “An Introduction to Trellis-Owl,” in OOPSLA '86 Conference Proceedings, Portland Oregon, Sept. 29-Oct. 2, 1986, pp. 9–16, 1986. (Published as SIGPLAN Notices, 21, 11, Nov. 1986.)
Mary Shaw (Ed.), in Alphard: Form and Content, Springer-Verlag, New York, Heidelberg, Berlin, 1981.
Bjarne Stroustrup, The C++ Programming Language, Addison-Wesley, Menlo Park (California), 1986.
Larry Tesler, “Object Pascal Report,” Structured Language World, vol. 9, no. 3, 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Meyer, B., Nerson, JM., Matsuo, M. (1987). Eiffel: Object-oriented design for software engineering. In: Nichols, H., Simpson, D. (eds) ESEC '87. ESEC 1987. Lecture Notes in Computer Science, vol 289. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0022115
Download citation
DOI: https://doi.org/10.1007/BFb0022115
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-18712-7
Online ISBN: 978-3-540-48117-1
eBook Packages: Springer Book Archive