Uniqueness type inference

  • Erik Barendsen
  • Sjaak Smetsers
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 982)

Abstract

We extend the Uniqueness Type System with uniqueness polymorphism. Using a notion of ‘principal uniqueness variants’ the type system is shown to be effective in the sense that a uniqueness variant of a given conventional type can be determined automatically. The presented algorithm serves as a basis for type checking in the language Clean. We illustrate the system by some concrete examples.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Achten, P.M. and M.J. Plasmeijer (1995). The ins and outs of Clean I/O, Journal of Functional Programming 5, pp. 81–110.Google Scholar
  2. Achten, P.M., J.H.G. van Groningen and M.J. Plasmeijer (1993). High level specification of I/O in functional languages, in: J. Launchbury and P. Sansom (eds.), Proceedings of the International Workshop on Functional Languages, Ayr, Scotland, 6–8 July 1992, Workshops in Computing, Springer-Verlag, Berlin, pp. 1–17.Google Scholar
  3. van Bakel, S.J., J.E.W. Smetsers and S. Brock (1992). Partial type assignment in left-linear term rewriting systems, in: J.C. Raoult (ed.), Proceedings of the 17th Colloqium on Trees and Algebra in Programming (CAAP'92), Rennes, France, Lecture Notes in Computer Science 581, Springer-Verlag, Berlin, pp. 300–322.Google Scholar
  4. Barendregt, H.P., M.C.J.D. van Eekelen, J.R.W. Glauert, J.R. Kennaway, M.J. Plasmeijer and M.R. Sleep (1987). Term graph reduction, in: J.W. de Bakker, A.J. Nijman and P.C. Treleaven (eds.), Proceedings of the Conference on Parallel Architectures and Languages Europe (PARLE) II, Eindhoven, The Netherlands, Lecture Notes in Computer Science 259, Springer-Verlag, Berlin, pp. 141–158.Google Scholar
  5. Barendsen, E. and J.E.W. Smetsers (1992). Graph rewriting and copying, Technical Report 92-20, Computing Science Institute, University of Nijmegen.Google Scholar
  6. Barendsen, E. and J.E.W. Smetsers (1993a). Conventional and uniqueness typing in graph rewrite systems, Technical Report CSI-R9328, Computing Science Institute, University of Nijmegen.Google Scholar
  7. Barendsen, E. and J.E.W. Smetsers (1993b). Conventional and uniqueness typing in graph rewrite systems (extended abstract), in: R.K. Shyamasundar (ed.), Proceedings of the 13th Conference on Foundations of Software Technology and Theoretical Computer Science, Bombay, India, Lecture Notes in Computer Science 761, Springer-Verlag, Berlin, pp. 41–51.Google Scholar
  8. Barendsen, E. and J.E.W. Smetsers (1994). Extending graph rewriting with copying, in: H.J. Schneider and H. Ehrig (eds.), Graph Transformations in Computer Science, International Workshop, Dagstuhl Castle, Germany, Lecture Notes in Computer Science 776, Springer-Verlag, Berlin, pp. 51–70.Google Scholar
  9. Girard, J.-Y., Y. Lafont and P. Taylor (1989). Proofs and Types, Cambridge Tracts in Theoretical Computer Science 7, Cambridge University Press.Google Scholar
  10. Guzmán, J.C. and P. Hudak (1990). Single-threaded polymorphic lambda calculus, Proceedings of the 5th Annual Symposium on Logic in Computer Science, Philadelphia, IEEE Computer Society Press, pp. 333–343.Google Scholar
  11. Jacobs, B.P.F. (1993). Personal communication.Google Scholar
  12. Plasmeijer, M.J. and M.C.J.D. van Eekelen (1995). Concurrent Clean 1.0 language report, Computing Science Institute, University of Nijmegen, To appear.Google Scholar
  13. Sastry, W., A.V.S. Clinger and Z.M. Ariola (1993). Order-of-evaluation analysis for destructive updates in strict functional languages with flat aggregates, Proceedings of the Conference on Functional Languages and Computer Architectures (FPCA), Copenhagen, Denmark, ACM Press, pp. 266–276.Google Scholar
  14. Troelstra, A.S. (1992). Lectures on Linear Logic, CSLI Lecture Notes 29, CSLI, Stanford.Google Scholar
  15. Wadler, P. (1990). Linear types can change the world!, Proceedings of the Working Conference on Programming Concepts and Methods, Israel, North-Holland, Amsterdam, pp. 385–407.Google Scholar
  16. Wadsworth, C.P. (1971). Semantics and Pragmatics of the Lambda Calculus, Dissertation, Oxford University.Google Scholar

Copyright information

© Springer-Verlag 1995

Authors and Affiliations

  • Erik Barendsen
    • 1
  • Sjaak Smetsers
    • 1
  1. 1.Computing Science InstituteUniversity of NijmegenED NijmegenThe Netherlands

Personalised recommendations