Advertisement

A kernel language for abstract data types and modules

  • R. Burstall
  • B. Lampson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 173)

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.

Keywords

Inference Rule Operational Semantic Type Part Dependent Type Denotational Semantic 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.Google Scholar
  2. Burstall, R. and Goguen, J. (1977). Putting theories together to make specifications. 5th Joint International Conference on Artificial Intelligence, Cambridge, MA, 1045–1058.Google Scholar
  3. Demers, A. and Donahue, J. (1980). Datatypes, parameters and type checking. 7th ACM Symposium on Principles of Programming Languages, Las Vegas, 12–23.Google Scholar
  4. Girard, J.-Y. (1972). Interpretation Fonctionelle et Elimination des Coupures dans l'Arithmetique d'Ordre Superieur, These de Doctorat d'etat, University of Paris.Google Scholar
  5. Gordon, M., Milner, R. and Wadsworth, C. (1979). Edinburgh LCF. Lecture Notes in Computer Science, Springer.Google Scholar
  6. Lampson, B. and Schmidt, E. (1983). Practical use of a polymorphic applicative language. 10th ACM Symposium on Principles of Programming Languages, Austin, TX.Google Scholar
  7. Landin, P. (1964). The Next 700 Programming Languages. Comm. ACM, 9, 157–166.Google Scholar
  8. 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.Google Scholar
  9. 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.Google Scholar
  10. MacQueen, D. (1984). Modules for standard ML (draft), in Polymorphism (ed. L. Cardelli), Computer Science Dept., Bell Labs., Murray Hill, NJ (privately circulated).Google Scholar
  11. 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.Google Scholar
  12. 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.Google Scholar
  13. Milner, R. (1978) A theory of type polymorphism in programming. JCSS 17 (3), 348–275.Google Scholar
  14. Mitchell, J., Maybury, W. and Sweet, R. (1979). Mesa Language Manual. Report Csl-79-3, Xerox Palo Alto Research Center, Palo Alto, CA.Google Scholar
  15. Pepper, P. (1979) A Study on Transformational Semantics. Dissertation, Fachbereich Mathematik, Technische Universitat München.Google Scholar
  16. Plotkin, G. (1981) A Structural Approach to Operational Semantics. Computer Science Dept. Report, Aarhus University.Google Scholar
  17. Reynolds, J. (1974) Towards a theory of type structure. Lecture Notes in Computer Science 19, Springer, 408–425.Google Scholar
  18. Reynolds, J. (1983) Types, abstraction and parametric polymorphism, in Information Processing 83, North-Holland.Google Scholar
  19. Schmidt, E. (1982) Controlling Large Software Development in a Distributed Environment. Report Csl-82-7, Xerox Palo Alto Research Center, Palo Alto, CA.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1984

Authors and Affiliations

  • R. Burstall
    • 1
    • 2
  • B. Lampson
    • 1
    • 2
  1. 1.Department of Computer ScienceUniversity of EdinburghEdinburgh 9
  2. 2.Xerox Palo Alto Research CenterPalo Alto

Personalised recommendations