skip to main content
article
Free access

Type inference in the presence of type abstraction

Published: 21 June 1989 Publication History

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

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 June 1989
Published in SIGPLAN Volume 24, Issue 7

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)89
  • Downloads (Last 6 weeks)17
Reflects downloads up to 10 Nov 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