Abstract
A small set of constructs can simulate a wide variety of apparently distinct features in modern programming languages. Using typed lambda calculus with bindings, declarations, and types as first-class values, we show how to build modules, interfaces and implementations, abstract data types, generic types, recursive types, and unions. The language has a concise operational semantics given by inference rules.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bauer, F.L., Broy, M., Gnatz, R., Hesse, W., Krieg-Bruckner, B., Partsch, H., Pepper, P. and Wossner, H. (1978). Towards a wide spectrum language to support program specification and program development. SIGPLAN Notices 13, 15–24.
Burstall, R. and Goguen, J. (1977). Putting theories together to make specifications. 5th Joint International Conference on Artificial Intelligence, Cambridge, MA, 1045–1058.
Demers, A. and Donahue, J. (1980). Datatypes, parameters and type checking. 7th ACM Symposium on Principles of Programming Languages, Las Vegas, 12–23.
Girard, J.-Y. (1972). Interpretation Fonctionelle et Elimination des Coupures dans l'Arithmetique d'Ordre Superieur, These de Doctorat d'etat, University of Paris.
Gordon, M., Milner, R. and Wadsworth, C. (1979). Edinburgh LCF. Lecture Notes in Computer Science, Springer.
Lampson, B. and Schmidt, E. (1983). Practical use of a polymorphic applicative language. 10th ACM Symposium on Principles of Programming Languages, Austin, TX.
Landin, P. (1964). The Next 700 Programming Languages. Comm. ACM, 9, 157–166.
MacQuecn, D. and Sethi, R. (1982). A higher order polymorphic type system for applicative languages. Symposium on Lisp and Functional Programming, Pittsburgh, PA, 243–252.
MacQueen, D., Plotkin, G. and Sethi, R. (1984). An ideal model for recursive polymorphic types. 11th ACM Symposium on Principles of Programming Languages, Salt Lake City, UT.
MacQueen, D. (1984). Modules for standard ML (draft), in Polymorphism (ed. L. Cardelli), Computer Science Dept., Bell Labs., Murray Hill, NJ (privately circulated).
Martin-Lof, P. (1973). An intuitionistic theory of types: predicative part, in Logic Colloq. '73 (eds. H.E. Rose and J.C. Shepherdson) North-Holland, 73–118.
McCracken, N. (1979). An Investigation of a Programming Language with a Polymorphic Type Structure. Ph.D. thesis, Computer and Information Science, Syracuse University, Syracuse, NY.
Milner, R. (1978) A theory of type polymorphism in programming. JCSS 17 (3), 348–275.
Mitchell, J., Maybury, W. and Sweet, R. (1979). Mesa Language Manual. Report Csl-79-3, Xerox Palo Alto Research Center, Palo Alto, CA.
Pepper, P. (1979) A Study on Transformational Semantics. Dissertation, Fachbereich Mathematik, Technische Universitat München.
Plotkin, G. (1981) A Structural Approach to Operational Semantics. Computer Science Dept. Report, Aarhus University.
Reynolds, J. (1974) Towards a theory of type structure. Lecture Notes in Computer Science 19, Springer, 408–425.
Reynolds, J. (1983) Types, abstraction and parametric polymorphism, in Information Processing 83, North-Holland.
Schmidt, E. (1982) Controlling Large Software Development in a Distributed Environment. Report Csl-82-7, Xerox Palo Alto Research Center, Palo Alto, CA.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1984 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Burstall, R., Lampson, B. (1984). A kernel language for abstract data types and modules. In: Kahn, G., MacQueen, D.B., Plotkin, G. (eds) Semantics of Data Types. SDT 1984. Lecture Notes in Computer Science, vol 173. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-13346-1_1
Download citation
DOI: https://doi.org/10.1007/3-540-13346-1_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-13346-9
Online ISBN: 978-3-540-38891-3
eBook Packages: Springer Book Archive