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.
Supported by NWO and STW.
Preview
Unable to display preview. Download preview PDF.
References
Achten, P.M. and M.J. Plasmeijer (1995). The ins and outs of Clean I/O, Journal of Functional Programming 5, pp. 81–110.
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.
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.
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.
Barendsen, E. and J.E.W. Smetsers (1992). Graph rewriting and copying, Technical Report 92-20, Computing Science Institute, University of Nijmegen.
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.
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.
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.
Girard, J.-Y., Y. Lafont and P. Taylor (1989). Proofs and Types, Cambridge Tracts in Theoretical Computer Science 7, Cambridge University Press.
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.
Jacobs, B.P.F. (1993). Personal communication.
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.
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.
Troelstra, A.S. (1992). Lectures on Linear Logic, CSLI Lecture Notes 29, CSLI, Stanford.
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.
Wadsworth, C.P. (1971). Semantics and Pragmatics of the Lambda Calculus, Dissertation, Oxford University.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Barendsen, E., Smetsers, S. (1995). Uniqueness type inference. In: Hermenegildo, M., Swierstra, S.D. (eds) Programming Languages: Implementations, Logics and Programs. PLILP 1995. Lecture Notes in Computer Science, vol 982. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026821
Download citation
DOI: https://doi.org/10.1007/BFb0026821
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60359-7
Online ISBN: 978-3-540-45048-1
eBook Packages: Springer Book Archive