Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/237721.237729acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Putting type annotations to work

Published: 01 January 1996 Publication History
  • Get Citation Alerts
  • Abstract

    We study an extension of the Hindley/Milner system with explicit type scheme annotations and type declarations. The system can express polymorphic function arguments, user-defined data types with abstract components, and structure types with polymorphic fields. More generally, all programs of the polymorphic lambda calculus can be encoded by a translation between typing derivations. We show that type reconstruction in this system can be reduced to the decidable problem of first-order unification under a mixed prefix.

    References

    [1]
    L. Augustsson. Haskell B. user's manual version 0.999.7, October 1994. Distributed with the HBC compiler.
    [2]
    Rod Burstall, David MacQueen, and Donald T. Sanella. Hope: An experimental applicative language. In Conference Record of the 1980 LISP Conference, pages 136-143, Redwood Estates, California, August 1980. The LISP Company.
    [3]
    Hans-J. Boehm. Type inference in the presence of type abstraction. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 192-206. ACM, ACM Press, June 1989.
    [4]
    Luis Damas and Robin Milner. Principal type schemes for functional programs. In Proc. 9th A CM Symposium on Principles of Programming Languages, January 1982.
    [5]
    Matthias Felleisen. On the expressive power of programming languages. In Neil D. Jones, editor, ESOP '90, European Symposium on Programming, pages 134-151. Springer-Verlag, 1990. Lecture Notes in Computer Science 432.
    [6]
    J. Girard. Une extension de l'interpretation de GOdel a l'analyse, et son application a l'elimination des coupures dans l'anMyse et la theorie des types. In 2nd Scandznavian Logic Symp., pages 63-92, 1971.
    [7]
    Fritz Henglein. Type inference with polymorphic recursion. A CM Transactions on Programming Languages and Systems, 15(1):253-289, April 1993.
    [8]
    Mark P. Jones. Qualified Types: Theory and Pract, ce. D.phil. thesis, Oxford University, September 1992.
    [9]
    Mark P. Jones. From Hindley-Milner types to first-class structures. In Proc. Hasketl Workshop, La Jolla, pages 1t5-136, June 1995. Yale University Research Report YALEU/DCS/RR-1075.
    [10]
    A. Kfoury, J. Tiuryn, and P. Urzyczyn. The undecidability of the semi-unification problem. Technical Report BUCS-89-010, Boston University, Oct. 1989. also in Proc. of Symp. on Theory of Computing, Baltimore, Maryland, May 1990.
    [11]
    A.J. Kfoury, J. Tiuryn, and P. Urzyczyn. Type reconstruction in the presence of polymorphic recursion. A CM Transactions on Programming Languages and Systems. 15(1):290-311, April 1993.
    [12]
    J. Lassez, M. Maher, and K. Marriott. Unification revisited. In J. Minker, editor, Foundations of Deductive Databases and Logic Programming. Morgan Kauffman, 1987.
    [13]
    Konstantin Litufer and Martin Odersky. Polymorphic type inference and abstract data types. A CM Transactions on Programming Languages and Systems, 16(5):1411-1430, September 1994.
    [14]
    John Launchbury and Simon Peyton Jones. State in Haskell. Lisp and Symbolic Computation, to appear.
    [15]
    N. McOracken. The typechecking of programs with implicit type structure. In Gilles Kahn, David B. MacQueen, and Gordon D. Plotkin, editors, Semantics of Data Types, pages 301-315. Springer-Verlag, June 1984. Lecture Notes in Computer Science 173.
    [16]
    Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348-375, Dec 1978.
    [17]
    Dale Miller. Unification under a mixed prefix. Journal of Symbolic Computation, 14:321-358, 1992.
    [18]
    John C. Mitchell. Polymorphic type inference and containment, in G6rard Huet, editor, Logical Foundations of Functional Programming, The UT Year of Programming Series, chapter 8. Addison-Wesley Publishing Company, Inc., 1990.
    [19]
    J.H. Morris. Lambda-Calculus Models of Programming Languages. PhD thesis, Massachusetts Institute of Technology, 1968. Technical Report MAC-TR-57.
    [20]
    J. Mitchell and G. Plotkin. Abstract types have existential types. A CM Trans. on Programming Languages and Systems, 10(3):470-502, 1988.
    [21]
    M. Mauny and F. Pottier. An implementation of Carol-Light with existential types. Technical report, INRIA, October 1993. Distributed with the Caml-Light system.
    [22]
    A. Mycroft. Polymorphic type schemes and recursive definitions. In Proc. 6th Int. Symposium. on Programming, LNCS 167, 1984.
    [23]
    James William O'Toole and David K. Gifford. Polymorphic type reconstruction. In Proceedings of the A CM SIGPLAN Conference on Programming Language Design and Implementation, pages 207-217. ACM, ACM Press, June 1989.
    [24]
    Martin Odersky and Konstantin Laufer. Type reconstruction in the presence of type scheme annotations. Technical report, University of Karlsruhe, 1995. forthcoming.
    [25]
    Martin Odersky, Philip Wadler, and Martin Wehr. A second look at overloading. In Proc. A CM Conf. on Functional Programming and Computer Architecture, pages 135-1469, June 1995.
    [26]
    N. Perry. The Implementation of Practical Functional Programming Languages. P hD thesis, Imperial College of Science, Technology, and Medicine, University of London, 1990.
    [27]
    Frank Pfenning. Partial polymorphic type inference and higher-order unification. In Proceedings of the 1988 A CM Conference on Lisp and Functional Programming, pages 153-163, July 1988.
    [28]
    Didier R#my. Typechecking records and variants in a natural extension of ML. In Proc. 16th A CM Symposium on Principles of Programming Languages, 1989.
    [29]
    Didier R#my. Programming objects with ML- ART, and extension to ML with abstract and record types. In Proc. Theoretical Aspects of Computer Software, pages 321-346, April 1994. Springer LNCS 789.
    [30]
    John C. Reynolds. Towards a theory of type structure. In International Programming Symposium, pages 408-425. Springer-Verlag, 1974. Lecture Notes in Computer Science 19.
    [31]
    J.B. Wells. Typability and type checking in the second order h-calculus are equivalent and undecidable. In Proc. 9th IEEE Symposium on Logic in Computer Science, pages 176-185, July 1994.

    Cited By

    View all
    • (2024)Parametric Subtyping for Structural Parametric PolymorphismProceedings of the ACM on Programming Languages10.1145/36329328:POPL(2700-2730)Online publication date: 5-Jan-2024
    • (2024)When Subtyping Constraints Liberate: A Novel Type Inference Approach for First-Class PolymorphismProceedings of the ACM on Programming Languages10.1145/36328908:POPL(1418-1450)Online publication date: 5-Jan-2024
    • (2023)Greedy Implicit Bounded QuantificationProceedings of the ACM on Programming Languages10.1145/36228717:OOPSLA2(2083-2111)Online publication date: 16-Oct-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '96: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 1996
    423 pages
    ISBN:0897917693
    DOI:10.1145/237721
    • Chairman:
    • Hans-J. Boehm,
    • Conference Chair:
    • Guy Steele
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 January 1996

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    POPL96

    Acceptance Rates

    POPL '96 Paper Acceptance Rate 34 of 148 submissions, 23%;
    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)104
    • Downloads (Last 6 weeks)10

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Parametric Subtyping for Structural Parametric PolymorphismProceedings of the ACM on Programming Languages10.1145/36329328:POPL(2700-2730)Online publication date: 5-Jan-2024
    • (2024)When Subtyping Constraints Liberate: A Novel Type Inference Approach for First-Class PolymorphismProceedings of the ACM on Programming Languages10.1145/36328908:POPL(1418-1450)Online publication date: 5-Jan-2024
    • (2023)Greedy Implicit Bounded QuantificationProceedings of the ACM on Programming Languages10.1145/36228717:OOPSLA2(2083-2111)Online publication date: 16-Oct-2023
    • (2023)Pragmatic Gradual Polymorphism with ReferencesProgramming Languages and Systems10.1007/978-3-031-30044-8_6(140-167)Online publication date: 22-Apr-2023
    • (2023)Deep Embedding with ClassTrends in Functional Programming10.1007/978-3-031-21314-4_3(39-58)Online publication date: 1-Jan-2023
    • (2022)Gradual System FJournal of the ACM10.1145/355598669:5(1-78)Online publication date: 28-Oct-2022
    • (2022)Affordable Spectral Measurements of Translucent MaterialsACM Transactions on Graphics10.1145/3550454.355549941:6(1-13)Online publication date: 30-Nov-2022
    • (2022)PopStageACM Transactions on Graphics10.1145/3550454.355546741:6(1-13)Online publication date: 30-Nov-2022
    • (2022)Learning Reconstructability for Drone Aerial Path PlanningACM Transactions on Graphics10.1145/3550454.355543341:6(1-17)Online publication date: 30-Nov-2022
    • (2021)An existential crisis resolved: type inference for first-class existential typesProceedings of the ACM on Programming Languages10.1145/34735695:ICFP(1-29)Online publication date: 19-Aug-2021
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media