Identification of and solutions to shortcomings of LCL, a Larch/C interface specification language

  • Patrice Chalin
  • Peter Grogono
  • T. Radhakrishnan
Session 6: Larch and LP
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1051)


We present some of the more significant shortcomings of LCL, a Larch/C specification language used to document the interfaces of modules written in ISO C. We illustrate inadequacies in the definition and insufficiencies in the expressiveness of LCL by means of examples that cover dependencies between objects, the trashing of objects, and implicit parameter constraints in function specifications. A violation of the principle of referential transparency is also shown. We describe changes to the LCL language that overcome the identified shortcomings. Since most of the shortcomings are not particular to LCL, this paper will be of interest to language designers and users of other module interface specification languages.


Specification Language Semantic Model Null Pointer Dependency Relationship Pointer Parameter 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Jonathan Bowen and Mike Hinchey. Ten commandments of formal methods. IEEE Computer, 28(4):56–63, April 1995.Google Scholar
  2. 2.
    Patrice Chalin. On the language design and semantic foundation of LCL, a Larch/C interface specification language. CU/DCS TR 95–12, Computer Science Department, Concordia University, December 1995. Ph.D. Thesis.Google Scholar
  3. 3.
    Jolly Chen. The Larch/Generic interface language. S. B. Thesis, Department of Electrical Engineering and Computer Science, MIT, 1989.Google Scholar
  4. 4.
    George W. Ernst, Raymond J. Hookway, and William F. Ogden. Modular verification of data abstractions with shared realizations. IEEE Transactions on Software Engineering, 20(4):288–307, April 1994.Google Scholar
  5. 5.
    David Evans. Using specifications to check source code. TR 628, MIT LCS, June 1994. S.M. Thesis.Google Scholar
  6. 6.
    David Evans, John V. Guttag, James J. Horning, and Yang Meng Tan. LCLint: A tool for using specifications to check code. In Symposium on the Foundations of Software Engineering, December 1994.Google Scholar
  7. 7.
    John V. Guttag and James J. Horning. LCL: A Larch interface language for C. Technical Report 74, DEC Systems Research Center, July 1991.Google Scholar
  8. 8.
    John V. Guttag and James J. Horning, editors. Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer-Verlag, 1993.Google Scholar
  9. 9.
    C.A.R. Hoare. An overview of some formal methods for program design. IEEE Computer, 20(9):85–91, September 1987.Google Scholar
  10. 10.
    Michal Iglewski, Jan Madey, David Lorge Parnas, and Philip C. Kelly. Documentation paradigms. CRL TR 270, McMaster University, July 1993.Google Scholar
  11. 11.
    ISO/IEC 9899: 1990 (E). Programming languages-C.Google Scholar
  12. 12.
    Ann Jackson and Daniel Hoffman. Inspecting module interface specifications. Software Testing, Verification and Reliability, 4:101–117, 1994.Google Scholar
  13. 13.
    Cliff B. Jones. Systematic Software Development using VDM. Computer Science Series. Prentice Hall International, second edition, 1990.Google Scholar
  14. 14.
    Richard Allen Lerner. Specifying Objects of Concurrent Systems. PhD thesis, Carngie Mellon University, May 1991. TR CMU-CS-91–131.Google Scholar
  15. 15.
    Carroll Morgan. Programming from Specifications. Computer Science Series. Prentice Hall International, 1990.Google Scholar
  16. 16.
    David Lorge Parnas and Yabo Wang. The trace assertion method of module interface specification. TR 89–261, Queen's University at Kingston (Dept. of Computing and Information Science), 1989.Google Scholar
  17. 17.
    S. Prehn and W.J. Toetenel, editors. VDM'91: Formal Software Development Methods, volume 551 of Lecture Notes in Computer Science. VDM Europe, Springer-Verlag, 1991. Volume 1: Conference Contributions.Google Scholar
  18. 18.
    J.M. Spivey. The Z Notation: A Reference Manual. Computer Science Series. Prentice Hall International, second edition, 1992.Google Scholar
  19. 19.
    Yang Meng Tan. Formal specification techniques for promoting software modularity, enhancing documentation, and testing specifications. TR 619, MIT LCS, June 1994. Ph.D. Thesis.Google Scholar
  20. 20.
    Mark T. Vandevoorde. Exploiting specifications to improve program performance. TR 598, MIT LCS, February 1994. Ph.D. Thesis.Google Scholar
  21. 21.
    Jeannette M. Wing and Amy Moormann Zaremski. Unintrusive ways to integrate formal specifications in practice. In [17], pages 545–569, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Patrice Chalin
    • 1
  • Peter Grogono
    • 1
  • T. Radhakrishnan
    • 1
  1. 1.Department of Computer ScienceConcordia UniversityMontréalCanada

Personalised recommendations