Skip to main content

Eiffel: Object-oriented design for software engineering

  • VII — Re-Use
  • Conference paper
  • First Online:
ESEC '87 (ESEC 1987)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 289))

Included in the following conference series:

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.).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Graham Birtwistle, Ole-Johan Dahl, Bjorn Myrhaug, and Kristen Nygaard, Simula Begin, Studentliteratur and Auerbach Publishers, 1973.

    Google Scholar 

  2. Daniel G. Bobrow and M.J. Stefik, LOOPS: an Object-Oriented Programming System for Interlisp, Xerox PARC, 1982.

    Google Scholar 

  3. H.I. Cannon, “Favors,” Technical Report, MIT Artificial Intelligence Laboratory, Cambridge (Massachussets), 1980.

    Google Scholar 

  4. Brad J. Cox, Object-Oriented Programming: An Evolutionary Approach, Addison-Wesley, Reading (Massachusetts), 1986.

    Google Scholar 

  5. S.C. Dewhurst, “Object Representation of Scope during Translation,” in ECOOP 87: European Conference on Object-Oriented Programming, Paris, June 1987.

    Google Scholar 

  6. Adele Goldberg and David Robson, Smalltalk-80: The Language and its Implementation, Addison-Wesley, Reading (Massachusets), 1983.

    Google Scholar 

  7. Jean-Marie Hullot, “Ceyx, Version 15: I-une Initiation,” Rapport Technique no. 44, INRIA, Rocquencourt, Eté 1984.

    Google Scholar 

  8. Interactive Software Engineering, Inc., “Eiffel Library Manual,” Technical Report TR-EI-7/LI, 1986.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Bertrand Meyer, “M: A System Description Method,” Technical Report TRCS85-15, University of California, Santa Barbara, Computer Science Department, August 1986. Submitted for publication.

    Google Scholar 

  12. Bertrand Meyer, “Eiffel: A Language and Environment for Software Engineering,” The Journal of Systems and Software, 1987. To appear.

    Google Scholar 

  13. 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).

    Google Scholar 

  14. Bertrand Meyer, Reusability: the Case for Object-Oriented Design, 4, pp. 50–64, IEEE Software, March 1987.

    Google Scholar 

  15. Bertrand Meyer, Object-oriented Software Construction, 1987. To appear

    Google Scholar 

  16. Bertrand Meyer, “Eiffel: Programming for Reusability and Extendibility,” ACM Sigplan Notices, February 1987, vol. 22, no. 2, pp. 85–94, 1987a.

    Google Scholar 

  17. 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.)

    Google Scholar 

  18. Mary Shaw (Ed.), in Alphard: Form and Content, Springer-Verlag, New York, Heidelberg, Berlin, 1981.

    Google Scholar 

  19. Bjarne Stroustrup, The C++ Programming Language, Addison-Wesley, Menlo Park (California), 1986.

    Google Scholar 

  20. Larry Tesler, “Object Pascal Report,” Structured Language World, vol. 9, no. 3, 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Howard Nichols Dan Simpson

Rights and permissions

Reprints 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

Publish with us

Policies and ethics