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.
Chapter PDF
Similar content being viewed by others
Keywords
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
L. Cardelli, “Basic Polymorphic Typechecking”, Polymorphism II(1) (January 1985).
E.W. Dijkstra, A Discipline of Programming, Prentice-Hall, Englewood Cliffs, N.J. (1976).
A. Martelli and U. Montanari, “An Efficient Unification Algorithm”, ACM TOPLAS 4(2), pp. 258–282 (April 1982).
R. Milner, “A Theory of Type Polymorphism in Programming”, J. of Computer and System Sciences 17(3), pp. 348–375 (December 1978).
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).
J. A. Robinson, “A Machine-Oriented Logic Based on the Resolution Principle”, JACM 12(1), pp. 23–41 (January 1965).
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).
I. Toyn, “Exploratory Environments for Functional Programming”, DPhil thesis (unpublished), Dept. of Computer Science, University of York (April 1987).
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).
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).
D. A. Turner, “An Overview of Miranda”, SIGPLAN Notices 21(12), pp. 158–166 (December 1986).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Toyn, I., Dix, A., Runciman, C. (1987). Performance polymorphism. In: Kahn, G. (eds) Functional Programming Languages and Computer Architecture. FPCA 1987. Lecture Notes in Computer Science, vol 274. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-18317-5_18
Download citation
DOI: https://doi.org/10.1007/3-540-18317-5_18
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-18317-4
Online ISBN: 978-3-540-47879-9
eBook Packages: Springer Book Archive