A semantics of multiple inheritance.
Proc. of the international symposium on Semantics of data types
Pascal user manual and report; 3rd ed.
Pascal user manual and report; 3rd ed.
Programming in Prolog
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the Fourth Colloquium on Automata, Languages and Programming
Polymorphic Type Schemes and Recursive Definitions
Proceedings of the 6th Colloquium on International Symposium on Programming
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
A semantic model of types for applicative languages
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Type inference and semi-unification
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Type declarations as subtype constraints in logic programming
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
A finite presentation theorem for approximating logic programs
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static type inference in a dynamically typed language
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Analysis of recursive types in Lisp-like languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Type inclusion constraints and type inference
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Polyvariant constructor specialisation
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Formal language, grammar and set-constraint-based program analysis by abstract interpretation
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Dynamic typing and subtype inference
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A practical subtyping system for Erlang
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
On the complexity of set-based analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Shape analysis for mobile ambients
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Eliminating Dead Code on Recursive Data
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Shape analysis for mobile ambients
Nordic Journal of Computing
Eliminating dead code on recursive data
Science of Computer Programming - Special issue on static analysis (SAS'99)
Polymorphic directional types for logic programming
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Set constraints with intersection
Information and Computation - Special issue: LICS'97
Hi-index | 0.00 |
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.