Skip to main content

Right and Wrong: Ten Choices in Language Design

  • Chapter
  • First Online:
The French School of Programming
  • 47 Accesses

Abstract

A description of language design choices that have a profound effect on software quality, criticism of how ordinary OO languages addressed them, and explanation of the thinking behind Eiffel’s corresponding mechanisms.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bertrand Meyer: Design by Contract, Technical Report TR-EI-12/CO, Interactive Software Engineering Inc., 1986. Republished as [7].

  2. Bertrand Meyer: Genericity versus inheritance, in ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1), Portland, Sept. 29–Oct. 2, 1986, pages 391–405, se.ethz.ch/˜meyer/publications/acm/geninh.pdf.

  3. Bertrand Meyer, Jean-Marc Nerson and Masanobu Matsuo: Safe and Reusable Programming using Eiffel, in Proc. First European Software Engineering Conference (ESEC 87), Strasbourg (France), September 8–11, 1987, LNCS, Springer, 1987, se.ethz.ch/˜meyer/publications/eiffel/eiffel_esec.pdf.

  4. Bertrand Meyer: Object-Oriented Software Construction, Prentice Hall, 1988. (See also [11].)

  5. Bertrand Meyer: Disciplined Exceptions, Technical Report TR-EI-13/DE, ISE Inc., May 1988, se.ethz.ch/Ëœmeyer/publications/methodology/exceptions.pdf.

    Google Scholar 

  6. Bertrand Meyer: Eiffel: The Language, Prentice Hall, 1990. (See also [26].)

  7. Bertrand Meyer: Design by Contract, in Advances in Object-Oriented Software Engineering, eds. D. Mandrioli and B. Meyer, Prentice Hall, 1991, pp. 1–50.

    Google Scholar 

  8. Bertrand Meyer: Reusable Software: The Base Object-Oriented Component Libraries, Prentice Hall, 1994.

    Google Scholar 

  9. Bertrand Meyer: Systematic Concurrent Object-Oriented Programming, in Communications of the ACM, vol. 36, no. 9, September 1993, pp. 56–80.

    Google Scholar 

  10. Bertrand Meyer: The Many Faces of Inheritance: A Taxonomy of Taxonomy, in Computer (IEEE), vol. 29, no. 5, May 1996, pp. 105–108, se.ethz.ch/˜meyer/publications/computer/taxonomy.pdf. (Similar material in section 24.5 of [11].)

  11. Bertrand Meyer: Object-Oriented Software Construction, second edition, Prentice Hall, 1997. (Considerably extended revision of [4].) A high-quality PDF version of the full text was recently made available at bertrandmeyer.com/OOSC2.

  12. Paul Dubois, Mark Howard, Bertrand Meyer, Michael Schweitzer and Emmanuel Stapf: From Calls to Agents, in Journal of Object-Oriented Programming (JOOP), vol. 12, no 6, June 1999, se.ethz.ch/Ëœmeyer/publications/joop/agent.pdf.

  13. Bertrand Meyer: Attached Types and their Application to Three Open Problems of Object-Oriented Programming, in ECOOP 2005 (Proceedings of European Conference on Object-Oriented Programming, Edinburgh, 25–29 July 2005), ed. Andrew Black, LNCS 3586, Springer, 2005, pages 1–32, se.ethz.ch/˜meyer/publications/lncs/attached.pdf.

  14. Bertrand Meyer: Agents, iteration and introspection, chapter from forthcoming Standard Eiffel [26].

  15. Ecma International: ECMA standard: Eiffel Analysis, Design and Programming Language (ed. Bertrand Meyer), approved as International Standard 367 by ECMA International, 21 June 2005; revised edition, December 2006, approved by the International Standards Organization as the ISO standard ISO/IEC 25436:2006. Text available at www.ecma-international.org/publications/standards/Ecma-367.htm.

  16. Bertrand Meyer: Software Architecture: Functional vs. Object-Oriented Design, in Beautiful Architecture, eds. Diomidis Spinellis and Georgios Gousios, O’Reilly, 2009, pages 315–348, https://se.ethz.ch/˜meyer/publications/functional/meyer_functional_oo.pdf.

  17. Bertrand Meyer: Touch of Class: Learning to Program Well Using Object Technology and Design by Contract, Springer, 2009. Book page, with extracts, at touch.ethz.ch.

  18. Bertrand Meyer, Ilinca Ciupa, Andreas Leitner, Arno Fiva, Yi Wei and Emmanuel Stapf: Programs that Test Themselves, in IEEE Computer, vol. 42, no. 9, pages 46–55, September 2009, se.ethz.ch/˜meyer/publications/computer/test_themselves.pdf. See also AutoTest page at https://se.ethz.ch/research/autotest/.

  19. Bertrand Meyer, Alexander Kogtenkov and Emmanuel Stapf: Avoid a Void: The Eradication of Null Dereferencing, in Reflections on the Work of C.A.R. Hoare, eds. C. B. Jones, A.W. Roscoe and K.R. Wood, Springer, 2010, pages 189–211, available at https://se.ethz.ch/˜meyer/publications/lncs/attached.pdf.

  20. Martin Nordio, Roman Mitin and Bertrand Meyer: Advanced Hands-on Training for Distributed and Outsourced Software Engineering, in ICSE 2010, Cape Town, IEEE Computer Society Press, 2010, se.ethz.ch/Ëœmeyer/publications/teaching/dose_icse.pdf. More publications and results on the DOSE distributed course and project at se.ethz.ch/research/dose.

  21. Benjamin Morandi, Sebastian Nanz and Bertrand Meyer: Can Asynchronous Exceptions Expire?, in Proc. of 5th International Workshop on Exception Handling (WEH 2012), ICSE, Zurich, June 2012, IEEE Computer Press, 2012, available at se.ethz.ch/Ëœmeyer/publications/concurrency/exceptions_expire.pdf.

  22. Julian Tschannen, Carlo A. Furia, Martin Nordio and Bertrand Meyer: Automatic Verification of Advanced Object-Oriented Features: The AutoProof Approach, in Tools for Practical Software Verification; International Summer School, LASER 2011, eds. Bertrand Meyer and Martin Nordio [350], LNCS 7682, Springer, December 2012, se.ethz.ch/Ëœmeyer/publications/proofs/autoproof.pdf. Web-based version of AutoProof and extensive further publications at autoproof.sit.org.

  23. Bertrand Meyer: Agile! The Good, the Hype and the Ugly, Springer, 2014. Book page with extracts at agile.ethz.ch.

  24. Bertrand Meyer: Theory of Programs, in Proc. LASER summer school on Software 2013-2014 2007/2008, eds. B. Meyer and M. Nordio, Springer LNCS 8987, 2015, se.ethz.ch/Ëœmeyer/publications/proofs/top.pdf.

  25. Bertrand Meyer, Alisa Arkadova and Alexander Kogtenkov: The Concept of Class Invariant in Object-Oriented Programming, to appear in Formal Aspects of Computing (ACM), 2024. (Preprint available at arxiv.org/abs/2109.06557, 2021-2023.)

  26. Bertrand Meyer: Standard Eiffel, new version of [6], in progress.

Download references

Acknowledgements

To Jean-Pierre Jouannaud and other reviewers for important comments. Li Huang produced a TeX version, following Springer style rules. The design of Eiffel is the work of many years with collaborators and influencers too numerous to acknowledge in any fair way.

Bibliography

The following list only includes publications by the author and collaborators, since they are the ones cited in the text. Those publications themselves rely on many contributions from many authors over many decades. The bibliography of [11], for example, contains 300 references to contributions of other authors. The references throughout the text to properties of languages such as Simula, Smalltalk, C++, Java and C# come from the standard documents and textbooks for these languages. References to Eiffel properties come from the ISO standard [15] and the language site eiffel.org. Information about the EiffelStudio IDE is available at eiffel.com.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bertrand Meyer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Meyer, B. (2024). Right and Wrong: Ten Choices in Language Design. In: Meyer, B. (eds) The French School of Programming. Springer, Cham. https://doi.org/10.1007/978-3-031-34518-0_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-34518-0_13

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-34517-3

  • Online ISBN: 978-3-031-34518-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics