Abstract
Polymorphic type systems as proposed by Milner and implemented in the programming language ML offer rich types, unobtrusive compile-time type-checking and complete type-safety in functional languages. However, straightforward addition of such a type system to languages with interactive environments such as FQL, SASL or Scheme can inhibit seriously the top-down, incremental programming style characteristically employed with them. The problems include error-recovery during type-checking, type-checking with incomplete information and incremental type-checking during program development. We describe these problems and present an integrated solution as prototyped in FQL.
Preview
Unable to display preview. Download preview PDF.
References
Albano, A., Cardelli, L. and Orsini, R. Galileo: a Strongly Typed Interactive Conceptual Language. Tech. Rep. 83-11271-2, Bell Laboratories, 1983.
Augustsson, L. A Compiler for Lazy ML. Proc. 1984 ACM Conf. on Lisp and Functional Programming, Austin, Texas, ACM, Aug., 1984, pp. 218–227.
Buneman,O.P., Frankel,R.E. and Nikhil,R. A Practical Functional Programming System for Databases. Proc. ACM Conference on Functional Programming Languages and Computer Architecture, Portsmouth, New Hampshire, 1981, pp. 164–186.
Buneman, O.P., Frankel, R.E. and Nikhil, R. An Implementation Technique for Database Query Languages. ACM Trans. on Database Systems 7, 2 (June 1982), 164–186.
Burstall,R.M., MacQueen,D. and Sanella,D. Hope: an Experimental Applicative Language. Proceedings of the Lisp Conference, Stanford, ACM, 1980, pp. 136–143.
Cardelli, L. ML Under Unix. Bell Laboratories, 1983.
Damas,L. and Milner,R. Principal Type-Schemes for Functional Programs. Proc. 9th Symp. on Principles of Programming Languages, ACM, Jan., 1982, pp. 207–212.
Gordon, M.J.C., Milner, R. and Wadsworth, C. Lecture Notes in Computer Science. Vol. 78: Edinburgh LCF. Springer-Verlag, Berlin, 1979.
Liskov, B.H. and Zilles, S.N. Programming with Abstract Data Types. SIGPLAN Notices 9, 4(1974), 50–59. (Proc. ACM SIGPLAN Conf. on VHLL)
Milner, R. A Theory of Type Polymorphism in Programming. J. Computer and System Sciences 17 (1978), 348–375.
Mycroft,A. and O'Keefe,R. A Polymorhic Type System for Prolog. Proc. Logic Programming Workshop 83, Portugal, 1983, pp. 107–122.
Nikhil,R.S. An Incremental, Strongly-Typed Database Query Language. Ph.D. Th., Moore School, University of Pennsylvania, Philadelphia, Aug., 1984. Available as Technical Report MS-CIS-85-02
Robinson, J.A. Computational Logic: the Unification Computation. Machine Intelligence, Vol 6, Einburgh University Press, Edinburgh, Scotland, 1971, pp. 63–72.
Steele,G.L. Jr. and Sussman,G.J. The Revised Report on Scheme: A Dialect of LISP. Tech. Rep. Al Memo 452, MIT Artificial Intelligence Laboratory, Jan., 1978.
Steele,G.L. Jr. and Sussman,G.J. The Art of the Interpreter, or, The Modularity Complex (Parts Zero, One, and Two). Tech. Rep. Al Memo 453, MIT Artificial Intelligence Laboratory, May, 1978.
Turner,D.A. SASL Manual. University of St.Andrews, 1976.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nikhil, R.S. (1985). Practical polymorphism. In: Jouannaud, JP. (eds) Functional Programming Languages and Computer Architecture. FPCA 1985. Lecture Notes in Computer Science, vol 201. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-15975-4_45
Download citation
DOI: https://doi.org/10.1007/3-540-15975-4_45
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-15975-9
Online ISBN: 978-3-540-39677-2
eBook Packages: Springer Book Archive