Skip to main content

Are We Ready for a Safer Construction Environment?

  • Conference paper
ECOOP 2009 – Object-Oriented Programming (ECOOP 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5653))

Included in the following conference series:

Abstract

The semantics of many OO languages dictates that the constructor of a derived class is a refining extension of one of the base class constructors. As this base constructor runs, it may invoke dynamically bound methods which are overridden in the derived class. These invocations receive an “half baked object”, i.e., an object whose derived class portion is uninitialized. Such a situation may lead to confusing semantics and to hidden coupling between the base and the derived. Dynamic binding within constructors also makes it difficult to enhance the programming language with advanced mechanisms for expressing design intent, such as non-null annotation (denoting reference values which can never be null), read-only annotation for fields and variables (expressing the intention that these cannot be modified after they are completely created) and class invariants (part of the famous design by contract methodology). A read-only field for example becomes immutable only after the creation of the enclosing object is complete.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight 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. Arnold, K., Gosling, J.: The Java Programming Language. The Java Series. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  2. Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., Tempero, E.: Understanding the shape of Java software. In: Tarr and Cook [27]

    Google Scholar 

  3. Birka, A., Ernst, M.D.: A practical type system and language for reference immutability. In: Vlissides, J.M., Schmidt, D.C. (eds.) Proc. of the 19th Ann. Conf. on OO Prog. Sys., Lang., & Appl (OOPSLA 2004), Vancouver, BC, Canada, October 2004. ACM SIGPLAN Notices, vol. 39 (10) (2004)

    Google Scholar 

  4. Bokowski, B., Vitek, J.: Confined types. In: Proc. of the 14th Ann. Conf. on OO Prog. Sys., Lang., & Appl (OOPSLA 1999), Denver, Colorado, November 1-5, 1999. ACM SIGPLAN Notices, vol. 34 (10), pp. 82–96. ACM Press, New York (1999)

    Google Scholar 

  5. Cabral, B., Marques, P.: Exception handling: A field study in Java and.NET. In: Ernst [11], pp. 151–175

    Google Scholar 

  6. Chalin, P., James, P.R.: Non-null references by default in Java: Alleviating the nullity annotation burden. In: Ernst [11], pp. 227–247

    Google Scholar 

  7. Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design rationale, compiler implementation, and applications. ACM Trans. Prog. Lang. Syst. 28(3) (May 2006)

    Google Scholar 

  8. Cohen, T., Gil, J.: Self-calibration of metrics of Java methods. In: Proc. of the 37th Int. Conf. on Technology of OO Lang. and Sys (TOOLS 2000 Pacific), Sydney, Australia, November 20-23, 2000, pp. 94–106. Prentice-Hall, Englewood Cliffs (2000)

    Google Scholar 

  9. Cohen, T., Gil, J.Y., Maman, I.: JTL—the Java tools language. In: Tarr and Cook [27]

    Google Scholar 

  10. Eckel, N., Gil, J.: Empirical study of object-layout strategies and optimization techniques. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 394–421. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  11. Ernst, E. (ed.): ECOOP 2007. LNCS, vol. 4609. Springer, Heidelberg (2007)

    Google Scholar 

  12. Fähndrich, M., Leino, K.R.M.: Declaring and checking non-null types in an object-oriented language. In: Crocker, R., Steele Jr., G.L. (eds.) Proc. of the 18th Ann. Conf. on OO Prog. Sys., Lang., & Appl (OOPSLA 2003), October 2003. ACM SIGPLAN Notices, vol. 38 (11) (2003)

    Google Scholar 

  13. Gil, J., Itai, A.: The complexity of type analysis of object oriented programs. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 601–634. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  14. Gil, J., Maman, I.: Micro patterns in Java code. In: Johnson and Gabriel [17], pp. 97–116

    Google Scholar 

  15. Hejlsberg, A., Wiltamuth, S., Golde, P.: The C# Programming Language, 2nd edn. Addison-Wesley, Reading (2003)

    Google Scholar 

  16. ISE. ISE EIFFEL The Language Reference. ISE, Santa Barbara, CA (1997)

    Google Scholar 

  17. Johnson, R., Gabriel, R.P.: Proc. of the 20th Ann. Conf. on OO Prog. Sys., Lang., & Appl (OOPSLA 2005), San Diego, California. ACM SIGPLAN Notices (2005)

    Google Scholar 

  18. Kniesel, G., Theisen, D.: JAC access right based encapsulation for Java. Softw. Pract. Exper. 31(6), 555–576 (2001)

    Article  MATH  Google Scholar 

  19. Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for Java. ACM SIGSOFT Software Engineering Notes 31(3), 1–38 (2006)

    Article  Google Scholar 

  20. Male, C., Pearce, D.J.: Non–null type inference with type aliasing for java. Technical report, Computer Science, Victoria University of Wellington, NZ (August 2007)

    Google Scholar 

  21. Melton, H., Tempero, E.: Static members and cycles in Java software. In: International Symposium on Empirical Software Engineering and Measurement, pp. 136–145 (2007)

    Google Scholar 

  22. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  23. Noble, J., Lea, D.: Editorial: Aliasing in object-oriented systems. Soft. Practice & Experience 31(6), 505 (2001)

    Article  Google Scholar 

  24. Odersky, M., Altherr, P., Cremet, V., Emir, B., Maneth, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M.: An overview of the Scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland (2004)

    Google Scholar 

  25. Stallman, R.M.: Using the GNU Compiler Collection (GCC): GCC Version 4.1.0. Free Software Foundation (2005)

    Google Scholar 

  26. Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison-Wesley, Reading (1997)

    MATH  Google Scholar 

  27. Tarr, P.L., Cook, W.R. (eds.): Proc. of the 21st Ann. Conf. on OO Prog. Sys., Lang., & Appl. (OOPSLA 2006), Portland, Oregon, October 22-26. ACM SIGPLAN Notices (2006)

    Google Scholar 

  28. Tschantz, M.S., Ernst, M.D.: Javari: Adding reference immutability to Java. In: Johnson and Gabriel [17]

    Google Scholar 

  29. Wrigstad, T.: Ownership-Based Alias Managemant12. PhD thesis, KTH, Computer and Systems Sciences (May 2006)

    Google Scholar 

  30. Zibin, Y., Potanin, A., Ali, M., Artzi, S., Kieżun, A., Ernst, M.D.: Object and reference immutability using Java generics. In: ESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Dubrovnik, Croatia, September 5–7 (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gil, J.(., Shragai, T. (2009). Are We Ready for a Safer Construction Environment?. In: Drossopoulou, S. (eds) ECOOP 2009 – Object-Oriented Programming. ECOOP 2009. Lecture Notes in Computer Science, vol 5653. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03013-0_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-03013-0_23

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-03012-3

  • Online ISBN: 978-3-642-03013-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics