Skip to main content

Practical polymorphism

  • Conference paper
  • First Online:
Book cover Functional Programming Languages and Computer Architecture (FPCA 1985)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 201))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Albano, A., Cardelli, L. and Orsini, R. Galileo: a Strongly Typed Interactive Conceptual Language. Tech. Rep. 83-11271-2, Bell Laboratories, 1983.

    Google Scholar 

  2. Augustsson, L. A Compiler for Lazy ML. Proc. 1984 ACM Conf. on Lisp and Functional Programming, Austin, Texas, ACM, Aug., 1984, pp. 218–227.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. Burstall,R.M., MacQueen,D. and Sanella,D. Hope: an Experimental Applicative Language. Proceedings of the Lisp Conference, Stanford, ACM, 1980, pp. 136–143.

    Google Scholar 

  6. Cardelli, L. ML Under Unix. Bell Laboratories, 1983.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Gordon, M.J.C., Milner, R. and Wadsworth, C. Lecture Notes in Computer Science. Vol. 78: Edinburgh LCF. Springer-Verlag, Berlin, 1979.

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Milner, R. A Theory of Type Polymorphism in Programming. J. Computer and System Sciences 17 (1978), 348–375.

    Google Scholar 

  11. Mycroft,A. and O'Keefe,R. A Polymorhic Type System for Prolog. Proc. Logic Programming Workshop 83, Portugal, 1983, pp. 107–122.

    Google Scholar 

  12. 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

    Google Scholar 

  13. Robinson, J.A. Computational Logic: the Unification Computation. Machine Intelligence, Vol 6, Einburgh University Press, Edinburgh, Scotland, 1971, pp. 63–72.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. Turner,D.A. SASL Manual. University of St.Andrews, 1976.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jean-Pierre Jouannaud

Rights and permissions

Reprints 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

Publish with us

Policies and ethics