|
ABSTRACT
Conventional Milner-style polymorphic type checkers automatically infer types of functions and simple composite objects such as tuples. Types of recursive data structures (e.g. lists) have to be defined by the programmer through an abstract data type definition. In this paper, we show how abstract data types, involving type union and recursion, can be automatically inferred by a type checker. The language for describing such types is that of regular trees, a generalization of regular expressions to denote sets of tree structured terms. Inference of these types is reducible to the problem of solving simultaneous inclusion inequations over regular trees. We present algorithms to solve such inequations. Using these techniques, programs without any type definitions and type annotations for functions can be type checked.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
R. M. Burstall , D. B. MacQueen , D. T. Sannella, HOPE: An experimental applicative language, Proceedings of the 1980 ACM conference on LISP and functional programming, p.136-143, August 25-27, 1980, Stanford University, California, United States
[doi> 10.1145/800087.802799]
|
| |
2
|
|
| |
3
|
|
 |
4
|
|
| |
5
|
[5] Despeyroux, T. Executable specifications of static semantaics. In Lecture Notes in Comp. Sci. Volume 173: Semantics of Data Types, Springer-Verlag, 1984, pp. 215-233.
|
| |
6
|
|
 |
7
|
|
| |
8
|
[8] Keller, R. M. FEL (Function Equation Language) Programmer's Guide. AMPS Technical Memorandum 7, University of Utah, April, 1982.
|
 |
9
|
|
| |
10
|
[10] Milner, R. A theory of type polymorphism in programming. J. Computer and System Sciences 17 (1978), pp. 348-375.
|
 |
11
|
|
| |
12
|
[12] Mishra, P. Data types in applicative languages: abstraction and inference. University of Utah, 1983.
|
| |
13
|
[13] Mishra, P. Towards a theory of types in Prolog. International symposium on logic programming. IEEE, 1984, pp. 289-298.
|
 |
14
|
|
| |
15
|
|
| |
16
|
[16] Reddy, U. S. On the relationship between logic and functional languages. In DeGrot. D, Lindstrom, G., Eds., Functional and Logic Programming. Prentice-Hall, 1985.
|
| |
17
|
[17] Reynolds R. C. Automatic Computation of Data Set Definitions. IFIP 68, 1968, pp. 456-461.
|
| |
18
|
|
| |
19
|
[19] Thatcher, J. W. Tree automata: an informal survey. In A. V. Aho, Ed., Currents in theory of computing, Prentice-Hall, 1973, pp. 143-172.
|
| |
20
|
[20] Turner, D. A. SASL Language Manual. St. Andrews University, 1976.
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
Dirk Dussart , Eddy Bevers , Karel De Vlaminck, Polyvariant constructor specialisation, Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, p.54-65, June 21-23, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Patrick Cousot , Radhia Cousot, Formal language, grammar and set-constraint-based program analysis by abstract interpretation, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.170-181, June 26-28, 1995, La Jolla, California, United States
|
|
|
|
|
|
Alexander Aiken , Edward L. Wimmers , T. K. Lakshman, Soft typing with conditional types, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.163-173, January 16-19, 1994, Portland, Oregon, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|