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

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.

[1]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[2]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[3]  Gary T. Leavens Modular specification and verification of object-oriented programs , 1991, IEEE Software.

[4]  Jan Madey,et al.  The Z notation: A reference manual , 1990 .

[5]  Shekhar H. Kirani Speci~cation and veri~cation of object-oriented programs , 1994 .

[6]  J. Davenport Editor , 1960 .

[7]  K. Mani Chandy,et al.  Current trends in programming methodology , 1977 .

[8]  Wim H. Hesselink Programs, Recursion and Unbounded Choice , 1992 .

[9]  K. R Leino,et al.  Towards Reliable Modular Programs , 1995 .

[10]  Susan Stepney,et al.  Object Orientation in Z , 1992, Workshops in Computing.

[11]  Leslie Lamport,et al.  Artificial Intelligence and Language Processing ]acques Cohen Editor a Simple Approach to Specifying Concurrent Systems , 2022 .

[12]  Alan Wills,et al.  Capsules and Types in Fresco: Program Verification in Smalltalk , 1991, ECOOP.

[13]  Alan Wills Refinement in Fresco , 1994 .

[14]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[15]  Joseph A. Goguen,et al.  OOZE: An Object Oriented Z Environment , 1991, ECOOP.

[16]  Pierre America,et al.  Inheritance and Subtyping in a Parallel Object-Oriented Language , 1987, ECOOP.

[17]  Wolfgang Polak,et al.  Formal Verification of Ada Programs , 1990, IEEE Trans. Software Eng..

[18]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[19]  Ana Cavalcanti,et al.  MooZ Case Studies , 1992, Object Orientation in Z.

[20]  T. Leavens,et al.  Protective Interface Speci cations , 1997 .

[21]  Swapan Mitra Object-oriented specification in VDM++ , 1994 .

[22]  Yang Meng Tan Interface Language for Supporting Programming Styles , 1994, Workshop on Interface Definition Languages.

[23]  Pierre America,et al.  Designing an Object-Oriented Programming Language with Behavioural Subtyping , 1990, REX Workshop.

[24]  John Mylopoulos,et al.  On the Frame Problem in Procedure Specifications , 1995, IEEE Trans. Software Eng..

[25]  Richard L. Wexelblat,et al.  Proceedings of the Workshop on Interface Definition Languages, January 20, 1994, Portland, Oregon, USA, in conjunction with POPL 1994 , 1994, IDL.

[26]  K. Lano,et al.  Specifying a concept-recognition system in Z ++ , 1994 .

[27]  Joseph A. Goguen,et al.  ALGEBRAS, THEORIES AND FREENESS: AN INTRODUCTION FOR COMPUTER SCIENTISTS , 1982 .

[28]  Jeannette M. Wing A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS , 1983 .

[29]  Gary T. Leavens,et al.  Reasoning about object-oriented programs that use subtypes , 1990, OOPSLA/ECOOP '90.

[30]  Gary T. Leavens,et al.  The Larch/Smalltalk interface specification language , 1994, TSEM.

[31]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[32]  J. Michael Spivey,et al.  An introduction to Z and formal specifications , 1989, Softw. Eng. J..

[33]  Joseph A. Goguen,et al.  Parameterized Programming , 1984, IEEE Transactions on Software Engineering.

[34]  Yang Meng Tan Formal Specification Techniques for Engineering Modular C Programs , 1996, The Springer International Series in Software Engineering.

[35]  Jeannette M. Wing Writing Larch interface language specifications , 1987, TOPL.

[36]  Kevin Lano,et al.  Object-oriented specification case studies , 1994 .

[37]  Gary T. Leavens,et al.  Forcing behavioral subtyping through specification inheritance , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[38]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[39]  Joseph A. Goguen,et al.  Specification in OOZE with examples , 1994 .

[40]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[41]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[42]  Gary T. Leavens Inheritance of interface specifications (extended abstract) , 1994 .

[43]  Bjarne Stroustrup,et al.  The C++ Programming Language, Second Edition , 1991 .

[44]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[45]  T LeavensGary,et al.  Specification and verification of object-oriented programs using supertype abstraction , 1995 .

[46]  Gary T. Leavens,et al.  Inheritance of Interface Specifications , 1993 .

[47]  Gordon A. Rose,et al.  Object-Z , 1992, Object Orientation in Z.

[48]  Roger Duke,et al.  An object-Z specification of a mobile phone system , 1994 .

[49]  Peter Grogono,et al.  On the language design and semantic foundation of lcl, a larch/c interface specification language , 1996 .

[50]  Yang Meng Tan Formal specification techniques for promoting software modularity, enhancing documentation, and testing specifications , 1994 .

[51]  Alan Wills Specification in Fresco , 1992, Object Orientation in Z.

[52]  Peter Grogono,et al.  Identification of and Solutions to Shortcomings of LCL, a Larch/C Interface Specification Language , 1996, FME.

[53]  Ana Cavalcanti,et al.  The Unix filing system: a MooZ specification , 1994 .

[54]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.