Modelling features of object-oriented languages in second order functional languages with subtypes

  • Giorgio Ghelli
Technical Contributions
Part of the Lecture Notes in Computer Science book series (LNCS, volume 489)


Object oriented languages are an important tool to achieve software reusability in any kind of application and can increase dramatically software productivity in some special fields; they are also considered a logical step in the evolution of object oriented languages. But these languages lack a formal foundation, which is needed both to develop tools and as a basis for the future evolution of these languages; they lack also a strong type system, which would be essential to assure that level of reliability which is required to large evolving systems. Recently some researches have tried to insulate the basic mechanisms of object oriented languages and to embed them in strongly typed functional languages, giving to these mechanism a mathematical semantics and a set of strong type rules. This is a very promising approach which also allows a converging evolution of both the typed functional and the object oriented programming paradigms, making it possible a technology transfer in both directions. Most works in this field are very technical and deal just with one aspect of object oriented programming; many of them use a very similar framework. In this work we describe and exemplify that common framework and we survey some of the more recent and promising works on more specific features, using the framework introduced. We describe the results achieved and point out some problems which are still open, especially those arising from the interactions between different mechanisms.


Representation Type Object Oriented Programming Record Type Functional Language Object Oriented Language 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Albano Cardelli Orsini 85]
    Albano A., L. Cardelli and R. Orsini, “Galileo: a Strongly Typed Interactive Conceptual Language", ACM Trans on DataBase Systems, Vol. 10, No. 2, 1985.Google Scholar
  2. [Cardelli 84]
    Cardelli L., “A Semantics of Multiple Inheritance”, Inf. and Comp., 76, 2–3, 138–174, 1988, first published in Semantics of Data Types, G. Kahn, D.B. McQueen and G. Plotkin Eds., LNCS 173, Springer-Verlag, 1984.Google Scholar
  3. [Cardelli, Wegner 85]
    Cardelli L. and P. Wegner, “On understanding types, data abstraction and polymorphism”, ACM Computing Surveys, vol 17 n.4, Dec. 1985.Google Scholar
  4. [Cardelli Mitchell 89]
    Cardelli L. and J.C. Mitchell, “Operations on Records”, Fifth Intl. Conf. on Mathematical Foundation of Programming Semantics, Tulane Univ., New Orleans, 1989.Google Scholar
  5. [Canning Hill Olthoff 88]
    Canning P.S., W.L. Hill and W. Olthoff, "A kernel language for object oriented programming”, Tech. Rep. STL-88-21, HP Labs, 1988.Google Scholar
  6. [Canning Cook Hill and others 89]
    Canning P.S., W.R. Cook, W.L. Hill, J.C. Mitchell and W. Olthoff, “F-bounded polymorphism for object oriented programming”, in Proc. of Conf. on Functional Progr. Languages and Comp. Arch., 1989.Google Scholar
  7. [Cook 89]
    Cook W., “A Denotational Semantics of Inheritance”, PhD Thesis, Brown University, 1989.Google Scholar
  8. [Cook Hill Canning 90]
    Cook W.R., W.L. Hill and P.S. Canning, “Inheritance is not subtyping”, Proc of POPL '90, 1990.Google Scholar
  9. [Curien Ghelli 90]
    Curien P.L. and G. Ghelli, “Coherence of Subsumption”, Mathematical Structures in Computer Science, to appear. An extended abstract appears in Proc. of CAAP '90.Google Scholar
  10. [Ghelli 90]
    Ghelli G., “Proof Theoretic Studies about a Minimal Type System Integrating Inclusion and Parametric Polymorphism”, PhD Thesis, TD-6/90, Dipartimento di Informatica dell'Università di Pisa, 1990.Google Scholar
  11. [Girard 72]
    Girard J.Y., “Interpétation fonctionelle et élimination des coupure dans l'arithmetic d'ordre superieur”, These de Doctorat d'Etat, Paris, 1972.Google Scholar
  12. [Goldberg 83]
    Goldberg A. and D. Robson, “Smalltalk-80. The language and its implementation”, Addison-Wesley, 1983.Google Scholar
  13. [Milner 78]
    Milner R., “A theory of type polymorphism in programming”, Journal of Computer and System Science 17, 1978.Google Scholar
  14. [Mitchell Plotkin 85]
    Mitchell J.C. and G.D. Plotkin, “Abstract Types Have Existential Types”, Proc. of POPL 85, 1985.Google Scholar
  15. [Mitchell 90]
    Mitchell, J., “Toward a typed foundation for method specialization and inheritance”, Proc of POPL '90, 1990.Google Scholar
  16. [Reynolds 74]
    Reynolds J.C., “Towards a theory of type structure”, in Paris Colloquium on Programming, LNCS 19, Springer-Verlag, 1974.Google Scholar
  17. [Wand 89]
    Wand M., “Type inference for record concatenation and multiple inheritance”, Proc of the fourth Symp. on Logic in Comp. Science, Asilomar, CA, 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Giorgio Ghelli
    • 1
  1. 1.Dipartimento di InformaticaUniversità di PisaPisaItaly

Personalised recommendations