Advertisement

Performance polymorphism

  • Ian Toyn
  • Alan Dix
  • Colin Runciman
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 274)

Abstract

In an interactive functional programming environment with a Milner-style polymorphic type system (Milner 1978), a modification to one definition may imply changes in the types of other definitions. A polymorphic typechecker must carry out some re-typechecking to determine all of these changes. This paper presents a new typechecking algorithm which performs fine-grained re-typechecking based on analysis of individual type constraints. The new algorithm is compared with that of Nikhil (Nikhil 1985), which performs re-typechecking of entire definitions.

Keywords

Directed Acyclic Graph Type Variable Type Error Dependency Graph Type Constraint 
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.

References

  1. Cardelli 1985.
    L. Cardelli, “Basic Polymorphic Typechecking”, Polymorphism II(1) (January 1985).Google Scholar
  2. Dijkstra 1976.
    E.W. Dijkstra, A Discipline of Programming, Prentice-Hall, Englewood Cliffs, N.J. (1976).Google Scholar
  3. Martelli 1982.
    A. Martelli and U. Montanari, “An Efficient Unification Algorithm”, ACM TOPLAS 4(2), pp. 258–282 (April 1982).Google Scholar
  4. Milner 1978.
    R. Milner, “A Theory of Type Polymorphism in Programming”, J. of Computer and System Sciences 17(3), pp. 348–375 (December 1978).Google Scholar
  5. Nikhil 1985.
    R. S. Nikhil, “Practical Polymorphism”, pp. 319–333 in Functional Programming Languages and Computer Architecture, ed. Jean-Pierre Jouannaud, Springer-Verlag Lecture Notes in Computer Science 201 (September 1985).Google Scholar
  6. Robinson 1965.
    J. A. Robinson, “A Machine-Oriented Logic Based on the Resolution Principle”, JACM 12(1), pp. 23–41 (January 1965).Google Scholar
  7. Toyn 1986.
    I. Toyn and C. Runciman, “Adapting Combinator and SECD Machines to Display Snapshots of Functional Computations”, New Generation Computing 4(4), pp. 339–363 (December 1986).Google Scholar
  8. Toyn 1987.
    I. Toyn, “Exploratory Environments for Functional Programming”, DPhil thesis (unpublished), Dept. of Computer Science, University of York (April 1987).Google Scholar
  9. Turner 1982.
    D. A. Turner, “Recursion Equations as a Programming Language”, in Functional Programming and its Applications, ed. J. Darlington, P. Henderson, and D. A. Turner, Cambridge University Press (1982).Google Scholar
  10. Turner 1985.
    D. A. Turner, “Miranda: A Non-Strict Functional Language with Polymorphic Types”, pp. 1–16 in Functional Programming Languages and Computer Architecture, ed. Jean-Pierre Jouannaud, Springer-Verlag Lecture Notes in Computer Science 201 (September 1985).Google Scholar
  11. Turner 1986.
    D. A. Turner, “An Overview of Miranda”, SIGPLAN Notices 21(12), pp. 158–166 (December 1986).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Ian Toyn
    • 1
  • Alan Dix
    • 1
  • Colin Runciman
    • 1
  1. 1.Dept. of Computer ScienceUniversity of York HeslingtonYorkUK

Personalised recommendations