Abstract
Intensional type analysis provides the ability to analyze abstracted types at run time. In this paper, we extend that ability to higherorder and kind-polymorphic type constructors. The resulting language is elegant and expressive. We show through examples how it extends the repertoire of polytypic definitions and the domain of valid types for those definitions.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
MartÃn Abadi, Luca Cardelli, Benjamin Pierce, and Gordon Plotkin. Dynamic typing in a statically-typed language. ACM Transactions on Programming Languages and Systems, 13(2):237–268, April 1991.
MartÃn Abadi, Luca Cardelli, Benjamin Pierce, and Didier Rémy. Dynamic typing in polymorphic languages. Journal of Functional Programming, 5(1):111–130, January 1995.
Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler. Making the future safe for the past: Adding genericity to the Java programming language. In Craig Chambers, editor, Object Oriented Programming: Systems, Languages, and Applications (OOPSLA), pages 183–200, Vancouver, BC, 1998.
Karl Crary and Stephanie Weirich. Flexible type analysis. In Proceedings of the Fourth ACM SIGPLAN International Conference on Functional Programming, pages 233–248, Paris, September 1999.
O. Danvy. Type-directed partial evaluation. In POPL’96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, St. Petersburg, Florida, January 1996, pages 242–257, 1996.
Joëlle Despeyroux and Pierre Leleu. Recursion over objects of functional type. Mathematical Structures in Computer Science, 11:555–572, 2001.
Joëlle Despeyroux, Frank Pfenning, and Carsten Schürmann. Primitive recursion for higher-order abstract syntax. In Third International Conference on Typed Lambda Calculi and Applications, volume 1210 of Lecture Notes in Computer Science, pages 147–163, Nancy, France, April 1997. Springer-Verlag.
Catherine Dubois, François Rouaix, and Pierre Weis. Extensional polymorphism. In Twenty-Second ACM Symposium on Principles of Programming Languages, pages 118–129, San Francisco, January 1995.
L. Fegaras and T. Sheard. Revisiting catamorphisms over datatypes with embedded functions. In Twenty-Third ACM Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida, January 1996.
Jean-Yves Girard. Interprétation fonctionelle et élimination des coupures de l’arithmétique d’ordre supérieur. PhD thesis, Université Paris VII, 1972.
James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, 1996.
Robert Harper and Greg Morrisett. Compiling polymorphism using intensional type analysis. In Twenty-Second ACM Symposium on Principles of Programming Languages, pages 130–141, San Francisco, January 1995.
Michael Hicks, Stephanie Weirich, and Karl Crary. Safe and flexible dynamic linking of native code. In R. Harper, editor, Types in Compilation: Third International Workshop, TIC 2000; Montreal, Canada, September 21, 2000; Revised Selected Papers, volume 2071 of Lecture Notes in Computer Science, pages 147–176. Springer, 2001.
Ralf Hinze. Polytypic values possess polykinded types. In Roland Backhouse and J.N. Oliveira, editors, Proceedings of the Fifth International Conference on Mathematics of Program Construction (MPC 2000), Ponte de Lima, Portugal, July 2000.
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. Available at http://www.cs.uu.nl/~johanj/publications/publications.html, 2001.
International Organisation for Standardisation and International Electrotechnical Commission. Ada Reference Manual: Language and Standard Libraries, 6.0 edition, December 1994. International Standard ISO/IEC 8652:1995.
Patrick Jansson and Johan Jeuring. PolyP-a polytypic programming language extension. In Twenty-Fourth ACM Symposium on Principles of Programming Languages, pages 470–482, Paris, France, 1997.
C.B. Jay, G. Bellè, and E. Moggi. Functorial ML. Journal of Functional Programming, 8(6):573–619, November 1998.
Mark P Jones and Alastair Reid. The Hugs 98 User Manual. Yale Haskell Group and Oregon Graduate Institute of Science and Technology. Available at http://cvs.haskell.org/Hugs/pages/hugsman/index.html.
Erik Meijer and Graham Hutton. Bananas in space: Extending fold and unfold to exponential types. In Conf. Record 7th ACM SIGPLAN/SIGARCH and IFIP WG 2.8 Int. Conf. on Functional Programming Languages and Computer Architecture, FPCA’95, La Jolla, San Diego, CA, USA, 25–28 June 1995, pages 324–333. ACM Press, New York, 1995.
Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML (Revised). The MIT Press, Cambridge, Massachusetts, 1997.
John C. Mitchell and Gordon D. Plotkin. Abstract types have existential type. ACM Transactions on Programming Languages and Systems, 10(3):470–502, July 1988.
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, School of Computer Science, Pittsburgh, Pennsylvania, December 1995.
Simon L. Peyton Jones and J. Hughes (editors). Report on the programming language Haskell 98, a non-strict purely functional language. Technical Report YALEU/DCS/RR-1106, Yale University, Department of Computer Science, February 1999. Available from http://www.haskell.org/definition/.
Frank Pfenning and Conal Elliott. Higher-order abstract syntax. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 199–208, Atlanta, GA, USA, June 1988.
John C. Reynolds. Types, abstraction and parametric polymorphism. In Information Processing’ 83, pages 513–523. North-Holland, 1983. Proceedings of the IFIP 9th World Computer Congress.
Fritz Ruehr. Structural polymorphism. In Roland Backhouse and Tim Sheard, editors, Informal Proceedings Workshop on Generic Programming, WGP’98, Marstrand, Sweden, 18 June 1998., 1998.
T. Sheard. Type parametric programming. Technical Report CSE 93-018, Oregon Graduate Institute, 1993.
The GHC Team. The Glasgow Haskell Compiler User’s Guide, version 5.02 edition. Available at http://www.haskell.org/ghc/.
Valery Trifonov, Bratin Saha, and Zhong Shao. Fully reflexive intensional type analysis. In Fifth ACM SIGPLAN International Conference on Functional Programming, pages 82–93, Montreal, September 2000.
Philip Wadler and Stephen Blott. How to make ad-hoc polymorphism less ad-hoc. In Sixteenth ACM Symposium on Principles of Programming Languages, pages 60–76. ACM, 1989.
Stephanie Weirich. Programming With Types. PhD thesis, Cornell University, 2002. Forthcoming.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Weirich, S. (2002). Higher-Order Intensional Type Analysis. In: Le Métayer, D. (eds) Programming Languages and Systems. ESOP 2002. Lecture Notes in Computer Science, vol 2305. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45927-8_8
Download citation
DOI: https://doi.org/10.1007/3-540-45927-8_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43363-7
Online ISBN: 978-3-540-45927-9
eBook Packages: Springer Book Archive