An overview of Larch

  • Stephen J. Garland
  • John V. Guttag
  • James J. Horning
Part of the Lecture Notes in Computer Science book series (LNCS, volume 693)


We begin by describing the Larch approach to specification and illustrating it with a few small examples. We then discuss LP, the Larch proof assistant, a tool that supports all the Larch languages. Our intent is to give you only a taste of these things. For a comprehensive look at Larch see [12].


Programming Language Interface Specification Abstract Type Type Table Interface Language 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Michel Bidoit. {frPluss, un langage pour le développement de spécifications algébriques modulaires}. Thèse d'Etat, Université de Paris-Sud, Orsay, May 1989.Google Scholar
  2. [2]
    S.R. Cardenas and H. Oktaba. Formal Specification in Larch Case Study: Text Manager. Interface Specification, Implementation, in Ada and Validation of Implementation, TR 511, Instituto de Investigaciones en Matematicas Aplicadas y en Sistemas, Universidad Nacional Autonoma de Mexico, 1988.Google Scholar
  3. [3]
    Yoonsik Cheon. Larch/Smalltalk: A Specification Language for Smalltalk, M.Sc. Thesis, Iowa State University, 1991.Google Scholar
  4. [4]
    O.-J. Dahl, D.F. Langmyhr, and O. Owe. Preliminary Report on the Specification and Programming Language ABEL, Research Report 106, Institute of Informatics, University of Oslo, Norway, 1986.Google Scholar
  5. [5]
    Ole-Johan Dahl. Verifiable Programming, Prentice Hall International Series in Computer Science, 1992.Google Scholar
  6. [6]
    H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification 1: Equations and Initial Semantics, EATCS Monographs on Theoretical Computer Science, vol. 6, Springer-Verlag, 1985.Google Scholar
  7. [7]
    Urban Engberg, Peter Gronning, and Leslie Lamport. “Mechanical verification of concurrent systems with TLA,” Proc. Workshop on Computer Aided Verification, 1992. Revised version in [16].Google Scholar
  8. [8]
    Stephen J. Garland and John V. Guttag. A Guide to LP, The Larch Prover, TR 82, DEC/SRC, Dec. 1991.Google Scholar
  9. [9]
    J.A. Goguen, J.W. Thatcher, and E.G. Wagner. “An initial algebra approach to the specification, correctness and implementation of abstract data types,” Current Trends in Programming Methodology IV: Data Structuring, R. Yeh (ed.), Prentice-Hall, 1978.Google Scholar
  10. [10]
    David Gries. The Science of Programming, Springer-Verlag, 1981.Google Scholar
  11. [11]
    David Guaspari, Carla Marceau, and Wolfgang Polak. “Formal verification of Ada,” IEEE Trans. Software Engineering 16(9), Sept. 1990.Google Scholar
  12. [12]
    J.V. Guttag and J.J. Horning (eds.) with S.J. Garland, K.D. Jones, A. Modet, and J.M. Wing Larch, Languages and Tools for Formal Specification, Springer-Verlag, 1993 (to appear).Google Scholar
  13. [13]
    Gary T. Leavens and Yoonsik Cheon. “Preliminary design of Larch/C++,” in [16].Google Scholar
  14. [14]
    Richard Allen Lerner. Specifying Objects of Concurrent Systems, Ph.D. Thesis, Dept. of Computer Science, Carnegie Mellon University, TR CS-91-131, May 1991.Google Scholar
  15. [15]
    U. Martin and T. Nipkow. “Automating Squiggol,” Proc. IFIP Work. Conf. Programming Concepts and Methods, Tiberias, Apr. 1990. North-Holland.Google Scholar
  16. [16]
    U. Martin and J.M. Wing. Proc. First Intl. Workshop on Larch, Dedham, Jul. 1992, Springer-Verlag.Google Scholar
  17. [17]
    James B. Saxe, Stephen J. Garland, John V. Guttag, and James J. Horning. “Using Transformations and Verification in Circuit Design,” in [16].Google Scholar
  18. [18]
    Jorgen Staunstrup, Stephen J. Garland, and John V. Guttag. “Mechanized verification of circuit descriptions using the Larch Prover,” Proc. IFIP Work. Conf. Theorem Provers in Circuit Design: Theory, Practice, and Experience, Nijmegen, Jun. 1992. North-Holland.Google Scholar
  19. [19]
    M. Wand. “Final algebra semantics and data type extensions,” Journal of Computer and System Sciences, Aug. 1979.Google Scholar
  20. [20]
    Jeannette Marie Wing. A Two-Tiered Approach to Specifying Programs, Ph.D. Thesis, Dept. of Electrical Engineering and Computer Science, MIT, TR MIT/LCS/TR-299, May 1983.Google Scholar
  21. [21]
    J.M. Wing. “Using Larch to Specify Avalon/C++ Objects,” Proc. Intl. Joint Conf. Theory and Practice of Software Development, TAPSOFT, Barcelona, Mar. 1989. Springer-Verlag, LNCS 352. Revised version in [21].Google Scholar
  22. [22]
    Jeannette M. Wing. “Writing Larch Interface Language Specifications,” ACM Trans. Programming Languages and Systems 9(1), Jan. 1987.Google Scholar
  23. [23]
    Jeannette M. Wing and Chun Gong. “Experience with the Larch Prover,” Proc. ACM Intl. Workshop on Formal Methods in Software Development, May 1990.Google Scholar
  24. [24]
    J.M. Wing, E. Rollins, and Amy Moormann Zaremski. “Thoughts on a Larch/ML and a new application for LP,” in [16].Google Scholar
  25. [25]
    M. Wirsing. Algebraic Specification, Technical Report MIP-8914, University of Passau, Germany, 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Stephen J. Garland
    • 1
  • John V. Guttag
    • 1
  • James J. Horning
    • 2
  1. 1.MIT Laboratory for Computer ScienceUSA
  2. 2.Digital Equipment Corp. Systems Research CenterUSA

Personalised recommendations