Abstract
Recently there has been a great deal of theoretical interest in formal specifications. However, there has not been a corresponding increase in their use for software development. Meanwhile, there has been significant convergence among formal specification methods intended for practical use.
The Larch Project is developing tools and techniques intended to aid in the productive use of formal specifications. This talk presents the combination of ideas, both old and new, that we are currently exploring.
One reason why our previous specification methods were not very successful was that we tried to make a single language serve too many purposes. To focus the Larch Project, we made some fairly strong assumptions about the problem we were addressing.
Each Larch specification has two parts, written in different languages. Larch interface languages are used to specify program units (e.g., procedures, modules, types). Their semantics is given by translation to predicate calculus. Abstractions appearing in interface specifications are themselves specified algebraically, using the Larch Shared Language.
A series of examples will be used to illustrate the use of the Larch Shared Language and the Larch/CLU interface language. The talk will conclude with notes on the key design choices for each of the languages, and for the method of combining the two parts of a specification.
Chapter PDF
Similar content being viewed by others
References
J. A. Goguen, J. W. Thatcher, and E. G. Wagner, “Initial Algebra Approach to the Specification, Correctness, and Implementation of Abstract Data Types,” In R. T. Yeh (ed.), Current Trends in Programming Methodology, Vol. IV, Data Structuring, Prentice-Hall, Englewood Cliffs, 1978.
R. M. Burstall and J. A. Goguen, “Putting Theories Together to Make Specifications,” Proc. 5th International Joint Conference on Atificial Intelligence, Cambridge, MA, 1977, 1045–1058.
—, “An Informal Introduction to Specifications Using CLEAR,” in R. Boyer and J. Moore (eds.), The Correctness Problem in Computer Science, Academic Press, New York, 1981, 185–213.
R. Forgaard, “A Program for Generating and Analyzing Term Rewriting Systems,” S.M. Thesis, Laboratory for Computer Science, Massachusetts Institute of Technology, MIT/LCS/TR-99, 1984.
J. V. Guttag, “The Specification and Application to Programming of Abstract Data Types,” Ph.D. Thesis, Computer Science Department, University of Toronto, 1975.
— and J. J. Horning, “Formal Specification as a Design Tool,” Proc. ACM Symposium on Principles of Programming Languages, Las Vegas, Jan. 1980, 251–261.
—, “Preliminary Report on the Larch Shared Language,” Technical Report MIT/LCS/TR-307 and Xerox PARC CSL-83-6, 1983.
—, “Report on the Larch Shared Language,” Science of Computer Programming, to appear.
—, “A Larch Shared Language Handbook,” Science of Computer Programming, to appear.
—, “An Overview of the Larch Family of Specification Languages,” in draft.
—, and J. M. Wing, “Some Notes on Putting Formal Specifications to Productive Use,” Science of Computer Programming, vol. 2, Dec. 1982, 53–68.
—, “Preliminary Report on the Larch/CLU Interface Language,” in draft.
E. C. R. Hehner, “Predicative Programming, Parts I and II,” Comm. ACM, vol. 27, Feb. 1984, 134–151.
P. Lescanne, “Computer Experiments with the REVE Term Rewriting System Generator,” Proc. ACM Symposium on Principles of Programming Languages, Austin, Jan. 1983, 99–108.
D. R. Musser, “Abstract Data Type Specification in the Affirm System,” IEEE Transactions on Software Engineering, vol. 1, 1980, 24–32.
Proc. Workshop on Combining Specification Methods, Nyborg, May 1984, Springer-Verlag.
M. Wand, “Final Algebra Semantics and Data Type Extensions,” Journal of Computer and System Sciences, vol. 19, 1979, 27–44.
J. M. Wing, “A Two-Tiered Approach to Specifying Programs,” Ph.D. Thesis, Laboratory for Computer Science, Massachusetts Institute of Technology, MIT/LCS/TR-299, May 1983.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Horning, J.J. (1985). Combining algebraic and predicative specifications in Larch. In: Ehrig, H., Floyd, C., Nivat, M., Thatcher, J. (eds) Formal Methods and Software Development. TAPSOFT 1985. Lecture Notes in Computer Science, vol 186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-15199-0_2
Download citation
DOI: https://doi.org/10.1007/3-540-15199-0_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-15199-9
Online ISBN: 978-3-540-39307-8
eBook Packages: Springer Book Archive