Category Theory and Computer Programming pp 364-389 | Cite as

# Extended ML: An institution-independent framework for formal program development

## Abstract

The Extended ML specification language provides a framework for the formal stepwise development of modular programs in the Standard ML programming language from specifications. The object of this paper is to equip Extended ML with a semantics which is completely independent of the logical system used to write specifications, building on Goguen and Burstall's work on the notion of an *institution* as a formalisation of the concept of a logical system. One advantage of this is that it permits freedom in the choice of the logic used in writing specifications; an intriguing side-effect is that it enables Extended ML to be used to develop programs in languages other than Standard ML since we view programs as simply Extended ML specifications which happen to include only “executable” axioms. The semantics of Extended ML is defined in terms of the primitive specification-building operations of the ASL kernel specification language which itself has an institution-independent semantics.

It is not possible to give a semantics for Extended ML in an institutional framework without extending the notion of an institution; the new notion of an *institution with syntax* is introduced to provide an adequate foundation for this enterprise. An institution with syntax is an institution with three additions: the category of signatures is assumed to form a concrete category; an additional functor is provided which gives concrete syntactic representations of sentences; and a natural transformation associates these concrete objects with the “abstract” sentences they represent. We use the first addition to “lift” certain necessary set-theoretic constructions to the category of signatures, and the other two additions to deal with the low-level semantics of axioms.

## Preview

Unable to display preview. Download preview PDF.

## 6 References

- [Bar 74]Barwise, K.J. Axioms for abstract model theory.
*Annals of Math. Logic 7*pp. 221–265.Google Scholar - [Bau 81]Bauer, F.L.
*et al*(the CIP Language Group) Report on a wide spectrum language for program specification and development. Report TUM-I8104, Technische Univ. München. See also:*The Wide Spectrum Language CIP-L*. Springer LNCS 183 (1985).Google Scholar - [BW 82]Broy, M. and Wirsing, M. Partial abstract types.
*Acta Informatica 18*pp. 47–64.Google Scholar - [BG 80]Burstall, R.M. and Goguen, J.A. The semantics of Clear, a specification language.
*Proc. of Advanced Course on Abstract Software Specifications*, Copenhagen. Springer LNCS 86, pp. 292–332.Google Scholar - [Ehr 79]Ehrich, H.-D. On the theory of specification, implementation, and parametrization of abstract data types. Report 82, Univ. of Dortmund. Also in:
*Journal of the Assoc. for Computing Machinery 29*pp. 206–227 (1982).Google Scholar - [EKMP 82]Ehrig, H., Kreowski, H.-J., Mahr, B. and Padawitz, P. Algebraic implementation of abstract data types.
*Theoretical Computer Science 20*pp. 209–263.Google Scholar - [GB 80]Goguen, J.A. and Burstall, R.M. CAT, a system for the structured elaboration of correct programs from structured specifications. Technical report CSL-118, SRI International.Google Scholar
- [GB 84]Goguen, J.A. and Burstall, R.M. Introducing institutions.
*Proc. Logics of Programming Workshop*(E. Clarke and D. Kozen, eds.), Carnegie-Mellon University. Springer LNCS 164, pp. 221–256.Google Scholar - [GB 86]Goguen, J.A. and Burstall, R.M. A study in the foundations of programming methodology: specifications, institutions, charters and parchments.
*Proc. Workshop on Category Theory and Computer Programming*, Guildford (this volume). Springer LNCS.Google Scholar - [GJM 85]Goguen, J.A., Jouannaud, J.-P. and Meseguer, J. Operational semantics for order-sorted algebra.
*Proc. 12th Intl. Colloq. on Automata, Languages and Programming*, Nafplion, Greece. Springer LNCS 194, pp. 221–231.Google Scholar - [GTW 76]Goguen, J.A., Thatcher, J.W. and Wagner, E.G. An initial algebra approach to the specification, correctness, and implementation of abstract data types. IBM research report RC 6487. Also in: Current Trends in Programming Methodology, Vol. 4: Data Structuring (R.T. Yeh, ed.), Prentice-Hall, pp. 80–149 (1978).Google Scholar
- [Gut 75]Guttag, J.V. The specification and application to programming of abstract data types. Ph.D. thesis, Univ. of Toronto.Google Scholar
- [LHKO 84]Luckham, D.C., von Henke, F.W., Krieg-Brückner, B. and Owe, O. Anna: a language for annotating Ada programs (preliminary reference manual). Technical report 84-248, Computer Systems Laboratory, Stanford University.Google Scholar
- [MacL 71]MacLane, S.
*Categories for the Working Mathematician*. Springer.Google Scholar - [MacQ 85]MacQueen, D.B. Modules for Standard ML.
*Polymorphism 2*, 2. See also:*Proc. 1984 ACM Symp. on LISP and Functional Programming*, Austin, Texas, pp. 198–207.Google Scholar - [Mil 85]Milner, R.G. The Standard ML core language.
*Polymorphism 2*, 2. See also: A proposal for Standard ML.*Proc. 1984 ACM Symp. on LISP and Functional Programming*, Austin, Texas, pp. 184–197.Google Scholar - [NY 83]Nakajima, R. and Yuasa, T. (eds.)
*The IOTA Programming System: A Modular Programming Environment*. Springer LNCS 160.Google Scholar - [Rei 84]Reichel, H. Behavioural validity of conditional equations in abstract data types.
*Contributions to General Algebra 3: Proc. of the Vienna Conference*. Verlag Hölder-Pichler-Tempsky, pp. 301–324.Google Scholar - [SB 83]Sannella, D.T. and Burstall, R.M. Structured theories in LCF.
*Proc. 8th Colloq. on Trees in Algebra and Programming*, L'Aquila, Italy. Springer LNCS 159, pp. 377–391.Google Scholar - [ST 85a]Sannella, D.T. and Tarlecki, A. Program specification and development in Standard ML.
*Proc. 12th ACM Symp. on Principles of Programming Languages*, New Orleans, pp. 67–77.Google Scholar - [ST 85b]Sannella, D.T. and Tarlecki, A. On observational equivalence and algebraic specification. Report CSR-172-84, Dept. of Computer Science, Univ. of Edinburgh; to appear in
*Journal of Computer and Systems Sciences*. Extended abstract in:*Proc. 10th Colloq. on Trees in Algebra and Programming*, Joint Conf. on Theory and Practice of Software Development (TAPSOFT), Berlin. Springer LNCS 185, pp. 308–322.Google Scholar - [ST 85c]Sannella, D.T. and Tarlecki, A. Specifications in an arbitrary institution. Report CSR-184-85, Dept. of Computer Science, Univ. of Edinburgh; to appear in
*Information and Control*. See also: Building specifications in an arbitrary institution,*Proc. Intl. Symposium on Semantics of Data Types*, Sophia-Antiplis. Springer LNCS 173, pp. 337–356 (1984).Google Scholar - [ST 86]Sannella, D.T. and Tarlecki, A. An institution-independent semantics for Extended ML. Research report, Laboratory for Foundations of Computer Science, Dept. of Computer Science, Univ. of Edinburgh (in preparation).Google Scholar
- [SW 83]Sannella, D.T. and Wirsing, M. A kernel language for algebraic specification and implementation. Report CSR-131-83, Dept. of Computer Science, Univ. of Edinburgh. Extended abstract in:
*Proc. Intl. Conf. on Foundations of Computation Theory*, Borgholm, Sweden. Springer LNCS 158, pp. 413–427.Google Scholar - [Tar 84]Tarlecki, A. Quasi-varieties in abstract algebraic institutions. Report CSR-173-84, Dept. of Computer Science, Univ. of Edinburgh; to appear in
*Journal of Computer and Systems Sciences*.Google Scholar - [Tar 85]Tarlecki, A. On the existence of free models in abstract algebraic institutions.
*Theoretical Computer Science 37*pp. 269–304.Google Scholar - [Wir 83]Wirsing, M. Structured algebraic specifications: a kernel language. Habilitation thesis, Technische Univ. München.Google Scholar
- [Zil 74]Zilles, S.N. Algebraic specification of data types. Computation Structures Group memo 119, Laboratory for Computer Science, MIT.Google Scholar