ABSTRACT
Sharing analysis and uniqueness typing are static analyses that aim at determining which of a program's objects are to be used at most once. There are many commonalities between these two forms of usage analysis. We make their connection precise by developing an expressive generic analysis that can be instantiated to both sharing analysis and uniqueness typing. The resulting system, which combines parametric polymorphism with effect subsumption, is specified within the general framework of qualified types, so that readily available tools and techniques can be used for the development of implementations and metatheory.
- Erik Barendsen and Sjaak Smetsers. Conventional and uniqueness typing in graph rewrite systems. In R. K. Shyamasundar, editor, Foundations of Software Technology and Theoretical Computer Science, 13th Conference, Bombay, India, December 15-17, 1993, Proceedings, volume 761 of Lecture Notes in Computer Science, pages 41--51. Springer-Verlag, 1993. Google Scholar
Digital Library
- Erik Barendsen and Sjaak Smetsers. Uniqueness type inference. In Manuel V. Hermenegildo and S. Doaitse Swierstra, editors, Programming Languages: Implementation, Logics and Programs, 7th International Symposium, PLILP'95, Utrecht, The Netherlands, September 20-22, 1995, Proceedings, volume 982 of Lecture Notes in Computer Science, pages 189--206. Springer-Verlag, 1995. Google Scholar
- Luís Damas and Robin Milner. Principal type-schemes for functional programs.In Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 1982, pages 207--212. ACM Press, 1982. Google Scholar
Digital Library
- Edsko de Vries, Rinus Plasmeijer, and David Abrahamson. Uniqueness typing redefined. In Zoltán Horváth, Viktória Zsók, and Andrew Butterfield, editors, Implementation and Application of Functional Languages, 18th International Workshop, IFL 2006, Budapest, Hungary, September 4-6, 2006, Revised Selected Papers, volume 4449 of Lecture Notes in Computer Science, pages 181--198. Springer-Verlag, 2007. Google Scholar
Digital Library
- Tobias Gedell, Jörgen Gustavsson, and Josef Svenningsson. Polymorphism, subtyping, whole program analysis and accurate data types in usage analysis. In Naoki Kobayashi, editor, Programming Languages and Systems, 4th Asian Symposium, APLAS 2006, Sydney, Australia, November 8-10, 2006, Proceedings, volume 4279 of Lecture Notes in Computer Science, pages 200--216. Springer-Verlag, 1999.Google Scholar
- John M. Gifford, David K. Lucassen. Integrating functional and imperative programming. In Proceedings of the 1986 ACM Conference on LISP and Functional Programming, August 4-6, 1986, Cambridge, Massachusetts, USA, pages 28--38. ACM Press, 1986. Google Scholar
Digital Library
- Jean-Yves Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris VII, 1972.Google Scholar
- Benjamin Goldberg. Detecting sharing of partial applications in functional programs. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture, Portland, Oregon, USA, September 14-16, 1987, Proceedings, volume 274 of Lecture Notes in Computer Science, pages 408--425. Springer-Verlag, 1987. Google Scholar
Digital Library
- Jörgen Gustavsson. Space-Safe Transformation and Usage Analysis for Call-by-Need Languages. PhD thesis, Göteborg University, 2001.Google Scholar
- Jörgen Gustavsson. A type based sharing analysis for update avoidance and optimisation. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP '98), Baltimore, Maryland, USA, September 27-29, 1998, pages 39--50. ACM Press, 1999. Google Scholar
Digital Library
- Jörgen Gustavsson and David Sands. A foundation for space-safe transformations of call-by-need programs. Electronic Notes in Theoretical Computer Science, 26:69--86, 1999.Google Scholar
Cross Ref
- Jörgen Gustavsson and Josef Svenningsson. A usage analysis with bounded usage polymorphism and subtyping. In Markus Mohnen and Pieter W. M. Koopman, editors, Implementation of Functional Languages, 12th International Workshop, IFL 2000, Aachen, Germany, September 4-7, 2000, Selected Papers, volume 2011 of Lecture Notes in Computer Science, pages 140--157. Springer-Verlag, 2001. Google Scholar
Digital Library
- Bastiaan Heeren. Top Quality Type Error Messages. PhD thesis, Utrecht University, 2005.Google Scholar
- J. Roger Hindley. The principal type-scheme of an object in combinatory logic. Transactions of the Americal Mathematical Society, 146:29--60, 1969.Google Scholar
- Mark P. Jones. Qualified Types: Theory and Practice. Cambridge University Press, Cambridge, 1994. Google Scholar
Digital Library
- Mark P. Jones. Simplifying and improving qualified types. In Conference Record of FPCA'95 SIGPLAN-SIGARCH-WG2.8 Conference on Functional Programming Languages and Computer Architecture. La Jolla, CA, USA, 25-28 June 1995, pages 160--169. ACM Press, 1995. Google Scholar
Digital Library
- Stefan Kaes. Parametric overloading in polymorphic programming languages. In Harald Ganzinger, editor, ESOP '88, 2nd European Symposium on Programming, Nancy, France, March 21-24, 1988, Proceedings, volume 300 of Lecture Notes in Computer Science, pages 131--144. Springer-Verlag, 1988. Google Scholar
Digital Library
- Naoki Kobayashi. Quasi-linear types. In POPL '99, Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 20-22, 1999, San Antonio, TX, pages 29--42. ACM Press, 1999. Google Scholar
Digital Library
- John Launchbury, Andy Gill, John Hughes, Simon Marlow, Simon Peyton Jones, and Philip Wadler. Avoiding unnecessary updates. In John Launchbury and Patrick M. Sansom, editors, Functional Programming, Glasgow 1992, Proceedings of the 1992 Glasgow Workshop on Functional Programming, Ayr, Scotland, 6-8 July 1992, Workshops in Computing, pages 144--153. Springer-Verlag, 1992. Google Scholar
Digital Library
- Jeffrey R. Lewis, John Launchbury, Erik Meijer, and Mark Shields. Implicit parameters: Dynamic scoping with static types. In POPL 2000, Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 19-21, 2000, Boston, Massachusetts, pages 108--118. ACM Press, 2000. Google Scholar
Digital Library
- Simon Marlow. Update avoidance analysis by abstract interpretation. In Kevin Hammond and John T. O'Donnell, editors, 1993 Glasgow Workshop on Functional Programming, Ayr, pages 170--184. Springer-Verlag, 1994.Google Scholar
Cross Ref
- Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348--375, 1978.Google Scholar
- Torben Æ. Mogensen. Types for 0, 1 or many uses. In Chris Clack, Kevin Hammond, and Anthony J. T. Davie, editors, Implementation of Functional Languages, 9th International Workshop, IFL'97, St. Andrews, Scotland, UK, September 10-12, 1997, Selected Papers, volume 1467 of Lectures Notes in Computer Science, pages 112--122. Springer-Verlag, 1998. Google Scholar
- Flemming Nielson and Hanne Riis Nielson. Type and effect systems. In Enst-Rüdiger Olderog and Bernhard Steffen, editors, Correct System Design, Recent Insight and Advances, (to Hans Langmaack on the occasion of his retirement from his professorship at the University of Kiel), volume 1710 of Lecture Notes in Computer Science, pages 114--136. Springer-Verlag, 1999. Google Scholar
Digital Library
- Simon Peyton Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge, 2003.Google Scholar
- Rinus Plasmeijer and Marco van Eekelen. Concurrent Clean language report-version 1.3. Technical Report CSI-R9816, University of Nijmegen, 1998.Google Scholar
- John C. Reynolds. Towards a theory of type structure. In Bernard Robinet, editor, Programming Symposium, Proceedings Colloque sur la Programmation, Paris, France, April 9-11, 1974, volume 19 of Lecture Notes in Computer Science, pages 408--423. Springer-Verlag, 1974. Google Scholar
Digital Library
- Peter Sestoft. Deriving a lazy abstract machine. Journal of Functional Programming, 7:231--264, 1997. Google Scholar
Digital Library
- Jean-Pierre Talpin and Pierre Jouvelot. A type and effect discipline. Information and Computation, 111(2):245--296, 1994. Google Scholar
Digital Library
- David N. Turner, Philip Wadler, and Christian Mossin. Once upon a type. In Conference Record of FPCA '95 SIGPLAN-SIGARCH-WG2.8 Conference on Functional Programming Languages and Computer Architecture. La Jolla, CA, USA, 25-28 June 1995, pages 1--11. ACM Press, 1995. Google Scholar
Digital Library
- Philip Wadler and Stephen Blott. How to make ad-hoc polymorphism less ad-hoc. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas, January 1989, pages 60--76. ACM Press, 1989. Google Scholar
Digital Library
- Keith Wansbrough. Simple Polymorphic Usage Analysis. PhD thesis, University of Cambridge, 2002.Google Scholar
- Keith Wansbrough and Simon Peyton Jones. Simple usage polymorphism. In Preliminary Proceedings of the Third Workshop on Types in Compilation (TIC 2000), 2000. The proceedings of the workshop have been published as a technical report (CMU-CS-00-161) at Carnegie Mellon University.Google Scholar
- Keith Wansbrough and Simon Peyton Jones. Once upon a polymorphic type. In POPL '99, Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 20-22, 1999, San Antonio, TX, pages 15--18. ACM Press, 1999. Google Scholar
Digital Library
Index Terms
A generic usage analysis with subeffect qualifiers
Recommendations
A generic usage analysis with subeffect qualifiers
Proceedings of the ICFP '07 conferenceSharing analysis and uniqueness typing are static analyses that aim at determining which of a program's objects are to be used at most once. There are many commonalities between these two forms of usage analysis. We make their connection precise by ...
Qualified types for MLF
Proceedings of the tenth ACM SIGPLAN international conference on Functional programmingMLF is a type system that extends a functional language with impredicative rank-n polymorphism. Type inference remains possible and only in some clearly defined situations, a local type annotation is required. Qualified types are a general concept that ...
Qualified types for MLF
ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programmingMLF is a type system that extends a functional language with impredicative rank-n polymorphism. Type inference remains possible and only in some clearly defined situations, a local type annotation is required. Qualified types are a general concept that ...







Comments