Static type checking for languages with parametric types and polymorphic procedures

  • R. Barbuti
  • A. Martelli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 83)


The paper presents a static type checking algorithm for a language which allows to declare, and to pass as parameters, types, type constructors (parametric types) and polimorphic functions. A program written in this language is translated into an expression in a suitable formalism, and this expression is reduced to a normal form which can be either error or a type correct expression. This approach can also be described as that of giving a non-standard interpretation to programs (in this case a symbolic interpretation) using a denotational semantics technique.


Normal Form Denotational Semantic Type Check Type Constructor Translation Rule 
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.


  1. Asirelli P., Gimona F., Martelli A., Montanari U. Passing parameter types in programming languages with data abstractions. AICA '77 Congress, Pisa, October 1977, 429–444.Google Scholar
  2. Asirelli P., Martelli A., Montanari U. Language constructs for controlling side effects. Internal Report OL78-6, IEI, Pisa, December 1978, Submitted for publication.Google Scholar
  3. Asirelli P., Degano P., Levi G., Martelli A., Montanari U., Pacini G., Sirovich F., Turini F. A flexible environment for program development based on a symbolic interpreter. Proc. Fourth Int. Conference on Software Engineering, Munich, September 1979, 251–263.Google Scholar
  4. Barbuti R. Verifica dei tipi statica per un linguaggio con procedure polimorfe. AICA '79 Congress, Bari, October 1979.Google Scholar
  5. Cousot P., Cousot R. Static determination of dynamic properties of generalized type unions. Language Design for Reliable Software, SIGPLAN Notices, 12, 3, March 1977, 77–94.Google Scholar
  6. Demers A., Donahue J., Skinner G. Data types as values: Polimorphism, Type-checking, Encapsulation. Proc. Fifth ACM Symposium on Principles of Programming Languages, Tucson, January 1978, 23–30.Google Scholar
  7. Donahue J. On the semantics of "Data types". SIAM J. Computing, 8, 4, November 1979, 546–560.Google Scholar
  8. Donzeau-Gouge V. Utilization de la semantique denotationelle pour la description d'interpretations non-standard: application a la validation et a l'optimisation des programmes. Third International Symp. on Programming, Paris, March 1978, 315–335.Google Scholar
  9. Ermine F., Ressouche A. Une methode de verification statique de types. Application au langage Pascal. Third International Symp. on Programming, Paris, March 1978, 292–314.Google Scholar
  10. Henderson P. An approach to compile time type checking. Information Processing 77, North Holland 1977, 523–527.Google Scholar
  11. Ichbiah J.D. et al. Rationale for the design of the ADA programming language. SIGPLAN Notices, 14, 7, July 1979.Google Scholar
  12. Lampson B.W., Horning J.J., London R.L., Mitchell J.G., Popek G.L. Report on the programming language Euclid. SIGPLAN Notices (ACM) 12, 2, 1977.Google Scholar
  13. Ledgard H.F. A model for type checking — with an application for Algol 60. Comm. ACM, 15, 11, November 1972, 956–966.Google Scholar
  14. Milner R. A theory of type polymorphism in programming. J. Comp and System Sciences, 17, 1978, 348–375.Google Scholar
  15. Mitchell J.G., Maybury W., Sweet R. Mesa language manual. Version 5.0. CSL-79-3, XEROX PARC, April 1979.Google Scholar
  16. Solomon M. Type definition with parameters. Proc. Fifth ACM Symposium on Principles of Programming Languages, Tucson, January 1978, 31–37.Google Scholar
  17. Reynolds J.C. Toward a theory of type structure. Lecture Notes in Comp. Science 19, Springer Verlag, Proc. Programming Symp., 1974, 408–425.Google Scholar
  18. Tennent R.D. On a new approach to representation-independent data classes. Acta Inform., 1977, 315–324.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1980

Authors and Affiliations

  • R. Barbuti
    • 1
  • A. Martelli
    • 1
  1. 1.Istituto di Elaborazione della Informazione del CNRPisaItaly

Personalised recommendations