Skip to main content

An Overview of Larch/C++: Behavioral Specifications for C++ Modules

  • Chapter
Object-Oriented Behavioral Specifications

Part of the book series: The Springer International Series in Engineering and Computer Science ((SECS,volume 371))

Abstract

An overview of the behavioral interface specification language Larch/C++ is presented. The features of Larch/C++ used to specify the behavior of C++ functions and classes, including subclasses, are described, with examples. Comparisons are made with other object-oriented specification languages. An innovation in Larch/C++ is the use of examples in function specifications.

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 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.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. America, P. Inheritance and subtyping in a parallel object-oriented language. In Bezivin, J. et al., editors, EC OOP’ 81, European Conference on Object-Oriented Programming, Paris, France, pages 234–242, New York, N.Y., June 1987. Springer-Verlag. Lecture Notes in Computer Science, Volume 276.

    Google Scholar 

  2. America, P. Designing an object-oriented programming language with behavioural subtyping. In de Bakker, J. W., de Roever, W. P., and Rozenberg, G., editors, Foundations of Object-Oriented Languages, REX School/Workshop, Noordwijkerhout, The Netherlands, May/June 1990, volume 489 of Lecture Notes in Computer Science, pages 60–90. Springer-Verlag, New York, N.Y., 1991.

    Google Scholar 

  3. Alencar, A. J. and Goguen, J. A. OOZE: An object oriented Z environment. In America, P., editor, ECOOP’ 91: European Conference on Object Oriented Programming, volume 512 of Lecture Notes in Computer Science, pages 180–199. Springer-Verlag, New York, N.Y., 1991.

    Google Scholar 

  4. Alencar, A. J. and Goguen, J. A. OOZE. In Stepney et al. [SBC92], pages 79–94.

    Google Scholar 

  5. Alencar, A. J. and Goguen, J. A. Specification in OOZE with examples. In Lano and Haughton [LH94a], pages 158–183.

    Google Scholar 

  6. Burstall, R. M. and Goguen, J. A. Algebras, theories and freeness: An introduction for computer scientists. In Broy, M. and Schmidt, G., editors, Theoretical Foundations of Programming Methodology: Lecture Notes of an International Summer School directed by F. L. Bauer, E. W. Dijkstra and C. A. R. Hoare, volume 91 of series C, pages 329–348. D. Ridel, Dordrecht, Holland, 1982.

    Google Scholar 

  7. Borgida, A., Mylopoulos, J., and Reiter, R. On the frame problem in procedure specifications. IEEE Transactions on Software Engineering, 21(10):785–798, October 1995.

    Article  Google Scholar 

  8. Chalin, P. On the Language Design and Semantic Foundation of LCL, a Larch/C Interface Specification Language. PhD thesis, Concordia University, 1455 de Maisonneuve Blvd. West, Montreal, Qquebec, Canada, October 1995. Available as CU/DCS TR 95-12.

    Google Scholar 

  9. Chalin, P., Grogono, P., and Radhakrishnan, T. Identification of and solutions to shortcomings of LCL, a Larch/C interface specification language. In Proceedings of the FME’96 Symposium. FME’96: Industrial Benefit and Advances in Formal Methods, Formal Methods Europe., 1996. To appear. An earlier version of this paper is available as Concordia University, Department of Computer Science TR 95-09.

    Google Scholar 

  10. Cheon, Y. and Leavens, G. T. The Larch/Smalltalk interface specification language. A CM Transactions on Software Engineering and Methodology, 3(3):221–253, July 1994.

    Article  Google Scholar 

  11. Cusack, E. and Rafsanjani, G. H. B. ZEST. In Stepney et al. [SBC92], pages 113–126.

    Google Scholar 

  12. Dhara, K. K. and Leavens, G. T. Forcing behavioral subtyping through specification inheritance. In Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, pages 258–267. IEEE Computer Society Press, March 1996.

    Google Scholar 

  13. Ellis, M. A. and Stroustrup, B. The Annotated C++ Reference Manual. Addison-Wesley Publishing Co., Reading, Mass., 1990.

    Google Scholar 

  14. Futatsugi, K., Goguen, J. A., Jouannaud, J.-P., and Meseguer, J. Principles of OBJ2. In Conference Record of the Twelfth Annual ACM Symposium on Principles of Programming Languages, pages 52–66. ACM, January 1985.

    Google Scholar 

  15. [GHG+93]_Guttag, J. V., Horning, J. J., Garland, S., Jones, K., Modet, A., and Wing, J. Larch: Languages and Tools for Formal Specification. Springer-Verlag, New York, N.Y., 1993.

    MATH  Google Scholar 

  16. Guaspari, D., Marceau, C, and Polak, W. Formal verification of Ada programs. IEEE Transactions on Software Engineering, 16(9): 1058–1075, September 1990.

    Article  Google Scholar 

  17. Goguen, J. A., Thatcher, J. W., and Wagner, E. G. An initial algebra approach to the specification, correctness and implementation of abstract data types. In Yeh, R. T., editor, Current Trends in Programming Methodology, volume 4, pages 80–149. Prentice-Hall, Inc., Englewood Cliffs, N.J., 1978.

    Google Scholar 

  18. Hoare, C. A. R. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576–583, October 1969.

    Article  MATH  Google Scholar 

  19. Hoare, C. A. R. Proof of correctness of data representations. Ada Informatica, 1(4):271–281, 1972.

    Article  MATH  Google Scholar 

  20. Hesselink, W. H. Programs, Recursion, and Unbounded Choice, volume 27 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, New York, N.Y., 1992.

    Google Scholar 

  21. Hayes, I., editor. Specification Case Studies. International Series in Computer Science. Prentice-Hall, Inc., second edition, 1993.

    Google Scholar 

  22. Jones, C. B. Systematic Software Development Using VDM. International Series in Computer Science. Prentice Hall, Englewood Cliffs, N.J., second edition, 1990.

    MATH  Google Scholar 

  23. Lamport, L. A simple approach to specifying concurrent systems. Communications of the ACM, 32(1):32–45, January 1989.

    Article  Google Scholar 

  24. Leavens, G. T. Modular specification and verification of object-oriented programs. IEEE Software, 8(4):72–80, July 1991.

    Article  Google Scholar 

  25. Lano, K. C. Z++. In Stepney et al. [SBC92], pages 106–112.

    Google Scholar 

  26. Leavens, G. T. Inheritance of interface specifications (extended abstract). In Proceedings of the Workshop on Interface Definition Languages, volume 29(8) of ACM SIGPLAN Notices, pages 129–138, August 1994.

    Article  Google Scholar 

  27. Leavens, G. T. Larch/C-f-f Reference Manual. Version 4.1. Available in ftp://ftp.cs.iastate.edu/pub/larchc-h-l-/lcpp.ps.gz or on the world wide web at the URL http://www.cs.iastate.edu/~leavens/larchcH-H-.htrnl, December 1995.

  28. Leavens, G. T. LSL math traits. http://www.cs.iastate.edu/~leavens/Math-traits.html, Jan 1996.

  29. Liskov, B. and Guttag, J. Abstraction and Specification in Program Development The MIT Press, Cambridge, Mass., 1986.

    MATH  Google Scholar 

  30. Lano, K. and Haughton, H., editors. Object-Oriented Specification Case Studies. The Object-Oriented Series. Prentice Hall, New York, N.Y., 1994.

    MATH  Google Scholar 

  31. Lano, K. and Haughton, H. Specifying a concept-recognition system in Z++. In Lano and Haughton [LH94a], chapter 7, pages 137–157.

    Google Scholar 

  32. Leavens, G. T. and Weihl, W. E. Reasoning about object-oriented programs that use subtypes (extended abstract). In Meyrowitz, N., editor, OOPSLA ECOOP’ 90 Proceedings, volume 25(10) of ACM SIGPLAN Notices, pages 212–223. ACM, October 1990.

    Google Scholar 

  33. Liskov, B. and Wing, J. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811–1841, November 1994.

    Article  Google Scholar 

  34. Leavens, G. T. and Weihl, W. E. Specification and verification of object-oriented programs using supertype abstraction. Ada Informatica, 32(8):705–778, November 1995.

    MATH  Google Scholar 

  35. Mitra, S. Object-oriented specification in VDM++. In Lano and Haughton [LH94a], chapter 6, pages 130–136.

    Google Scholar 

  36. Meira, S. L. and Cavalcanti, A. L. C. MooZ case studies. In Stepney et al. [SBC92], pages 37–58.

    Google Scholar 

  37. Meira, S. L., Cavalcanti, A. L. C, and Santos, C. S. The Unix filing system: A MooZ specification. In Lano and Haughton [LH94a], chapter 4, pages 80–109.

    Google Scholar 

  38. Rose, G. and Duke, R. An Object-Z specification of a mobile phone system. In Lano and Haughton [LH94a], chapter 5, pages 110–129.

    Google Scholar 

  39. Rose, G. Object-Z. In Stepney et al. [SBC92], pages 59–77.

    Google Scholar 

  40. Spivey, J. An introduction to Z and formal specifications. Software Engineering Journal, January 1989.

    Google Scholar 

  41. Stroustrup, B. The C++ Programming Language: Second Edition. Addison-Wesley Publishing Co., Reading, Mass., 1991.

    Google Scholar 

  42. Spivey, J. M. The Z Notation: A Reference Manual International Series in Computer Science. Prentice-Hall, New York, N.Y., second edition, 1992.

    Google Scholar 

  43. Stepney, S., Barden, R., and Cooper, D., editors. Object Orientation in Z. Workshops in Computing. Springer-Verlag, Cambridge CB2 1LQ, UK, 1992.

    Google Scholar 

  44. Tan, Y. M. Formal specification techniques for promoting software modularity, enhancing documentation, and testing specifications. Technical Report 619, Massachusetts Institute of Technology, Laboratory for Computer Science, 545 Technology Square, Cambridge, Mass., June 1994.

    Google Scholar 

  45. Tan, Y. M. Interface language for supporting programming styles. A CM SIGPLAN Notices, 29(8):74–83, August 1994. Proceedings of the Workshop on Interface Definition Languages.

    Article  Google Scholar 

  46. Tan, Y. M. Formal Specification Techniques for Engineering Modular C Programs, volume 1 of Kluwer International Series in Software Engineering. Kluwer Academic Publishers, Boston, 1995.

    Google Scholar 

  47. Wing, J. M. A two-tiered approach to specifying programs. Technical Report TR-299, Massachusetts Institute of Technology, Laboratory for Computer Science, 1983.

    Google Scholar 

  48. Wing, J. M. Writing Larch interface language specifications. A CM Transactions on Programming Languages and Systems, 9(1):1–24, January 1987.

    Article  MATH  Google Scholar 

  49. Wills, A. Capsules and types in Fresco: Program validation in Smalltalk. In America, P., editor, ECOOP’ 91: European Conference on Object Oriented Programming, volume 512 of Lecture Notes in Computer Science, pages 59–76. Springer-Verlag, New York, N.Y., 1991.

    Google Scholar 

  50. Wills, A. Refinement in Fresco. In Lano and Houghton [LH94a], chapter 9, pages 184–201.

    Google Scholar 

  51. Wills, A. Specification in Fresco. In Stepney et al. [SBC92], chapter 11, pages 127–135.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Kluwer Academic Publishers

About this chapter

Cite this chapter

Leavens, G.T. (1996). An Overview of Larch/C++: Behavioral Specifications for C++ Modules. In: Object-Oriented Behavioral Specifications. The Springer International Series in Engineering and Computer Science, vol 371. Springer, Boston, MA. https://doi.org/10.1007/978-0-585-27524-6_8

Download citation

  • DOI: https://doi.org/10.1007/978-0-585-27524-6_8

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-0-7923-9778-6

  • Online ISBN: 978-0-585-27524-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics