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

Type inference in the presence of type abstraction

Published: 21 June 1989 Publication History
  • Get Citation Alerts
  • Abstract

    A number of recent programming language designs incorporate a type checking system based on the Girard-Reynolds polymorphic λ-calculus. This allows the construction of general purpose, reusable software without sacrificing compile-time type checking. A major factor constraining the implementation of these languages is the difficulty of automatically inferring the lengthy type information that is otherwise required if full use is made of these languages. There is no known algorithm to solve any natural and fully general formulation of this “type inference” problem. One very reasonable formulation of the problem is known to be undecidable.
    Here we define a restricted version of the type inference problem and present an efficient algorithm for its solution. We argue that the restriction is sufficiently weak to be unobtrusive in practice.

    References

    [1]
    H. Boehm, A. Demers, and J. Donahue, "An Informal Description of Russell"_ Technical Report 80-430, Computer Science Department, Cornell University, 1980.
    [2]
    H. Boehm, A. J. Demers, and J. E. Donahue, "A Programmer's Introduction to Russell", Technical Report 85-16, Department of Computer Science, Rice University, 1085.
    [3]
    Hans-J. Boehm, "Partial Polymorphic Type Inference is Undecidable", Proceedings of the eth Annual IEEE Symposium on Foundations of Computer Science, Oct. 1985, pp. 339-345.
    [4]
    Hans-J. Boehm and Alan Demers, "Implementing Russell", Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, SIGPLAN Notices ~i, 7, July 1986, pp. 186-195.
    [5]
    Luca Cardelli, "Basic Polymorphic Type Checking'', Polymorphism 2, 1 (January 1985).
    [6]
    G.V. Cormack and A. K. Wright, "Polymorphism in the Compiled Language ForceOne", Proceedings of the Twentieth Annual Hawaii International Conference on System Sciences, 1987, pp. 284-292.
    [7]
    Luis Damas and Robin Milner, "Principal Type- Schemes for Functional Programs", Conference Record of the Ninth Annual A CM Symposium on ?rinc~le8 of Programming Languages, pp. 207-212.
    [8]
    DeBruin, N. G., "Lainbda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church- Rosser theorem", Indagationes Mathematics 37 (1972), pp. sol-as2.
    [9]
    Donahue, J., and A. Demers, "Data Types are Values", A CM Transactions on Programming Languages and Systems 7, 3 (July 1985), pp. 426-445.
    [10]
    J.Y. Girard, Interpretation fonctioneIle et elimination des coupures de l'arithmetique d'ordre 8uperieur, These d'Etat, Universite Paris VII, 1972.
    [11]
    W.D. Goldfarb, "The Undecidability of the Second-Order Unification Problem", Theoretical Computer Science 13 (1981), pp. 225-230.
    [12]
    R. Hindley, "The Principal Type-Scheme of an Object in Combinatory Logic", Transactions of the American Mathematical Society 140 (1959), pp. 29-60.
    [13]
    J. Hook, "Understanding Russell - A First Attempt", Semantics o~ Data Types, Proceedings, Springer LNCS 173, 1984, pp. 69-86.
    [14]
    D. J. Howe, "The Computational Behavior of Girard's Paradox", Proceedings of the IEEE Symposium or~ Logic in Computer Science, 1987, pp. 205-214.
    [15]
    J.D. Ichbiah et al., :'Rationale for the Design of the ADA Programming Language", SIGPLAN Notices 14, 6t3 (June 1979).
    [16]
    Jenks, Richard D., "A Primer: 11 Keys to the new Scratchpad", Proceeding of EUROSAM '8~, Springer Lecture Notes in Computer Science 174, pp. 123-147.
    [17]
    P. C. Kanellakis and J. C. Mitchell, "Polymorphic Unification and ML Typing", Conference Record of the Sizteenth Annual A CM Symposium on Principles of Programming Languages, 1989, pp. 105-115.
    [18]
    A.J. Kfoury, J. Tiuryn, P. Urzyczyn, "A Proper Extension of NIL with an Effective Type Assignment'', Conference Record of the Fifteenth Annual A CM Symposium on Principles of Programming Languages, 1988, pp. 58-69.
    [19]
    B. Lampson and R. Burstall, "Pebble, a Kernel Language for Modules and Abstract Data Types" Information and Computation 76, pp. 278-346.
    [20]
    D. Leivant, "Polyrnorphic Type Inference", Proceedings of the lOth Annual ACM Symposium on Principles of Programming Languages, 1983, pp. 88-98.
    [21]
    Lucassen, John M., and David K. Gifford, "Polymorphic Effect Systems" Conference Record of the Fifteenth Annual A CM Symposium on Principles of Programming Languages, 1988, pp. 47-67.
    [22]
    David MacQueen, "Modules for Standard MI,", Conference Record of the 19&i A CM Symposium on Li, p and Functional Programming, 1984~ pp. 198-207.
    [23]
    Matthews, D.C.J., "Poly Manual", SIGPLAN Notices 20, 9 (Sept. 86), pp. 52-75.
    [24]
    Albert Meyer and Mark Reinhold," ~Type' Is Not a Type", Conference Record of the Thirteenth Annual A CM Symposium or, Principles of Programming Languages, Jan. 1985, pp. 287-195.
    [25]
    Dale A. Miller and Gopalan Nadathur, "Higher- Order Logic Programming", Proceedings of the Third International Conference on Logic Progr, amming, Springer LN(2S ~p225, pp. 448-462.
    [26]
    R. Milner, "A Theory pf Type Polymorphism in Programming", JCSS 17, 3 (1978), pp. 348-375.
    [27]
    John C. Mitchell, Robert Harper, "The Essence of ML" Conference Record of the Fifteenth Annual )iCM Sympodum on Princolea of Programming Languages, Jan. 1988, pp. 28-46.
    [28]
    John C. Mitchell, "Polymorphic Type Inference and Containment", Information and Computation 76, pp. 211-249.
    [29]
    M.S. Paterson, and M. N. Wegman, "Linear Unification", J. Comput. Syot. Sci. 16, 2 (April 1978), pp. 158-167.
    [30]
    Frank Pfenning, "Partial Polymorphic Type Inference and Higher-Order Unification", Proceeding, of the 1988 ACM Lisp and Fugctional Programming Conference, 1988.
    [31]
    J. Reynolds, "Towards a Theory of Type Structure'', Paris Colloquium on Programming, 1974, pp. 408-424.
    [32]
    R.S. Sutor and R.D. Jenks, "The Type Inference and Coercion Facilities in the Scratchpad II Interpreter'', SIGPLAN '87 Symposium on Interpreters and Interpretive Techniques, SIGPLAN Notices 22, 7, pp. 56-63.

    Cited By

    View all
    • (2005)Architecture independence and coordinationParallel Symbolic Computing: Languages, Systems, and Applications10.1007/BFb0018658(287-299)Online publication date: 31-May-2005
    • (2005)Types in lambda calculi and programming languagesESOP '9010.1007/3-540-52592-0_53(1-35)Online publication date: 1-Jun-2005
    • (1998)Local type inferenceProceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/268946.268967(252-265)Online publication date: 21-Jan-1998
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PLDI '89: Proceedings of the ACM SIGPLAN 1989 conference on Programming language design and implementation
    June 1989
    355 pages
    ISBN:089791306X
    DOI:10.1145/73141
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 24, Issue 7
      Proceedings of the SIGPLAN '89 symposium on Interpreters and interpretive techniques
      July 1989
      355 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/74818
      Issue’s Table of Contents
    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: 21 June 1989

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    PLDI89
    Sponsor:
    PLDI89: Programming Language Design & Implementation
    June 19 - 23, 1989
    Oregon, Portland, USA

    Acceptance Rates

    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)64
    • Downloads (Last 6 weeks)10
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all

    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