Advertisement

Existentially quantified procedures: A mechanism for abstracting type in dynamic typing constructs

  • Richard Connor
Typing
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1369)

Abstract

Existential quantification of procedures is introduced as a mechanism for languages with dynamic typing. It allows abstraction over types whose representations require to be manipulated at run time. Universal quantification, the mechanism normally associated with procedural type abstraction, is shown to be unsuitable for this style of abstraction. For many such procedures only a single type specialisation is correct, hence the analogy with existential quantification from predicate logic. For any invocation of an existentially quantified procedure, the run-time system will require to maintain a single type representation for which the abstracted type stands. Existential quantification represents a class of ad hoc polymorphism, where operations over values of the abstracted type may behave differently according to the actual specialisation.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [ABC83]
    M.P. Atkinson, P. Bailey, K.J. Chisholm, W.P. Cockshott and R. Morrison “An Approach to Persistent Programming” The Computer Journal 26, 4 ( 1983 ) pp 360–365Google Scholar
  2. [ABM88]
    M.P. Atkinson, O.P. Buneman and R. Morrison “Binding and Typechecking in Database Programming Languages” Computer Journal 31, 2 ( March 1988 ) pp 99–109Google Scholar
  3. [ACP+91 ]
    Martin Abadi, Luca Cardelli, Benjamin C. Pierce, and Gordon D. Plotkin. Dynamic typing in a statically-typed language. ACM Transactions on Programming Languages and Systems, 13(2):237–268, April 1991Google Scholar
  4. [ACP+95]
    Martin Abadi, Luca Cardelli, Benjamin C. Pierce, and Didier Rémy. Dynamic typing in polymorphic languages. Journal of Functional Programming, 5(1):111–130, January 1995Google Scholar
  5. [AM85]
    M.P. Atkinson and R. Morrison “Types, Bindings and Parameters in a Persistent Environment” In M.P. Atkinson, O.P. Buneman and R. Morrison (editors) “Data Types and Persistence”, Springer-Verlag ( 1988 ) pp 1–24Google Scholar
  6. [Car85]
    Cardelli, L. “Amber” Tech. Report AT7T. Bell Labs. Murray Hill, U.S.A. (1985).Google Scholar
  7. [Car89]
    L. Cardelli “Typeful Programming“ DEC SRC Technical Report No. 45 (May 1989 )Google Scholar
  8. [CBC+90]
    Connor, R. C. H., Brown, A. B., Cutts, Q. I., Dearle, A., Morrison, R. and Rosenberg, J. (1990) Type Equivalence Checking in Persistent Object Systems. In A. Dearle, G. M. Shaw and S. B. Zdonik (eds), Implementing Persistent Object Bases, Principles and Practice, pp. 151–164, Morgan KaufmannGoogle Scholar
  9. [CM88]
    L. Cardelli and D. McQueen “Persistence and Type Abstraction” In M.P. Atkinson, O.P. Buneman and R. Morrison (editors) “Data Types and Persistence”, Springer-Verlag ( 1988 ) pp 31–41Google Scholar
  10. [Con90]
    Connor, R. C. H. (1990) Types and Polymorphism in Persistent Programming Systems. Ph.D. Thesis, University of St Andrews.Google Scholar
  11. [Cut92]
    Cutts, Q. I. (1992) Delivering the Benefits of Persistence to System Construction and Execution. Ph.D. Thesis, University of St Andrews.Google Scholar
  12. [CW85]
    Cardelli, L. and Wegner, P. (1985) On Understanding Types, Data Abstraction and Polymorphism. ACM Computing Surveys, 17 (4), 471–523.Google Scholar
  13. [Gir72]
    J.-Y. Girard “Une extension de l'interpretation de Gödel á l'analyse, et son application á l'élimination des coupure dans l'analyse et théorie des types” Proc. 2nd Scandinavian Logic Symposium ( 1972 ) pp 63–92Google Scholar
  14. [KBC+95]
    Kirby, G. N. C., Brown, A. L., Connor, R. C. H. et al. (1995) The Napier88 Standard Library Reference Manual Version 2.2.1. University of St Andrews.Google Scholar
  15. [KCC+92]
    Kirby, G. N. C., Connor, R. C. H., Cutts, Q. I., Dearle, A., Farkas, A. M. and Morrison, R. (1992) Persistent HyperPrograms. In A. Albano and R. Morrison (eds), Persistent Object Systems, pp. 86–106, Springer-VerlagGoogle Scholar
  16. [LM97]
    Bernd Larssen and Florian Matthes, private communication at the DBPL workshop.Google Scholar
  17. [Mat95]
    F. Matthes. Higher-Order Persistent Polymorphic Programming in Tycoon.In M.P. Atkinson, editor, Fully Integrated Data Environments. Springer-Verlag (to appear)Google Scholar
  18. [MBC+94]
    Morrison, R., Brown, A. L., Connor, R. C. H. et al. (1994) The Napier88 Reference Manual (Release 2.0). University of St Andrews.Google Scholar
  19. [MP88]
    J.C. Mitchell and G.D. Plotkin “Abstract Types have Existential Type” ACM ToPLaS 10, 3 (July 1988 ) pp. 470–502Google Scholar
  20. [Rey74]
    J.C. Reynolds “Towards a Theory of Type Structure” Proc. Paris Colloquium on Programming ( 1974 ) pp 408–425Google Scholar
  21. [Str67]
    C. Strachey “Fundamental Concepts in Programming Languages” Oxford University Press ( 1967 )Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Richard Connor
    • 1
  1. 1.Department of Computing ScienceUniversity of GlasgowGlasgowScotland

Personalised recommendations