Results 1 
6 of
6
Type Inference with Polymorphic Recursion
 Transactions on Programming Languages and Systems
, 1991
"... The DamasMilner Calculus is the typed Acalculus underlying the type system for ML and several other strongly typed polymorphic functional languages such as Mirandal and Haskell. Mycroft has extended its problematic monomorphic typing rule for recursive definitions with a polymorphic typing rule. H ..."
Abstract

Cited by 137 (0 self)
 Add to MetaCart
The DamasMilner Calculus is the typed Acalculus underlying the type system for ML and several other strongly typed polymorphic functional languages such as Mirandal and Haskell. Mycroft has extended its problematic monomorphic typing rule for recursive definitions with a polymorphic typing rule. He proved the resulting type system, which we call the MilnerMycroft Calculus, sound with respect to Milner’s semantics, and showed that it preserves the principal typing property of the DamasMilner Calculus. The extension is of practical significance in typed logic programming languages and, more generally, in any language with (mutually) recursive definitions. In this paper we show that the type inference problem for the MilnerMycroft Calculus is logspace equivalent to semiunification, the problem of solving subsumption inequations between firstorder terms. This result has been proved independently by Kfoury et al. In connection with the recently established undecidability of semiunification this implies that typability in the MilnerMycroft Calculus is undecidable. We present some reasons why type inference with polymorphic recursion appears to be practical despite its undecidability. This also sheds some light on the observed practicality of ML
Efficient Inference of Object Types
, 1995
"... Abadi and Cardelli have recently investigated a calculus of objects [2]. The calculus supports a key feature of objectoriented languages: an object can be emulated by another object that has more refined methods. Abadi and Cardelli presented four firstorder type systems for the calculus. The simpl ..."
Abstract

Cited by 54 (6 self)
 Add to MetaCart
Abadi and Cardelli have recently investigated a calculus of objects [2]. The calculus supports a key feature of objectoriented languages: an object can be emulated by another object that has more refined methods. Abadi and Cardelli presented four firstorder type systems for the calculus. The simplest one is based on finite types and no subtyping, and the most powerful one has both recursive types and subtyping. Open until now is the question of type inference, and in the presence of subtyping "the absence of minimum typings poses practical problems for type inference" [2]. In this paper...
Dynamic Typing
 In Proc. Fourth European Symp. Programming (ESOP’92
, 1992
"... We present an extension of a statically typed language with a special type Dynamic and explicit type tagging and checking operations (coercions). Programs in runtime typed languages are viewed as incomplete programs that are to be completed to welltyped programs by explicitly inserting coercions i ..."
Abstract

Cited by 36 (3 self)
 Add to MetaCart
We present an extension of a statically typed language with a special type Dynamic and explicit type tagging and checking operations (coercions). Programs in runtime typed languages are viewed as incomplete programs that are to be completed to welltyped programs by explicitly inserting coercions into them. Such completions are generally not unique. If the meaning of an incomplete program is to be the meaning of any of its completions and if it is too be unambiguous it is necessary that all its completions are coherent (semantically equivalent). We characterize with an equational theory the properties a semantics must satisfy to be coherent. Since “naive ” coercion evaluation does not satisfy all of the coherence equations we exclude certain “unsafe ” completions from consideration that can cause avoidable type errors at runtime. Various classes of completions may be used, parameterized by whether or not coercions may only occur at data creation and data use points in a program and whether only primitive coercions or also induced coercions. For each of these classes any term has a minimal completion that is optimal in the sense that it contains no coercions that could be avoided by a another coercion in the same class. In particular, minimal completions contain no coercions at all whenever the program is statically typable. If only primitive type operations are admitted we show that minimal completions can be computed in almostlinear time. If induced coercions are also allowed the minimal completion can be computed in time O(nm) where n is the size of the program and m is the size of the value flow graph of the program, which may be of size O(n 2), but is typically rather sparse. Finally, we sketch how this explicit dynamic typing discipline can be extended to letpolymorphism by parameterization with respect to coercions. The resulting language framework leads to a seamless integration of statically typed and dynamically typed languages by relying on type inference for programs that have no type information and no explicit coercions whatsoever. 1
A Larger Decidable Semiunification Problem
"... We present a graphtheoretic framework in which to study instances of the semiunification problem (SUP), which is known to be undecidable, but has several known and important decidable subsets. One such subset, the acyclic semiunification problem (ASUP), has proved useful in the study of polymorphic ..."
Abstract
 Add to MetaCart
We present a graphtheoretic framework in which to study instances of the semiunification problem (SUP), which is known to be undecidable, but has several known and important decidable subsets. One such subset, the acyclic semiunification problem (ASUP), has proved useful in the study of polymorphic type inference. We present graphtheoretic criteria in our framework that exactly characterize the ASUP acyclicity constraint. We then use our framework to find a decidable subset of SUP (which we call RASUP), which has a more natural description than ASUP, and strictly contains it. 1.
On the Sequential Nature ofInterprocedural ProgramAnalysis Problems
"... Abstract In this paper, westudy two interprocedural programanalysis problems—interprocedural slicing and interprocedural dataflow analysis—and present the following results: • Interprocedural slicing is logspace complete forP. • The problem of obtaining “meetoverallvalidpaths ” solutions to in ..."
Abstract
 Add to MetaCart
Abstract In this paper, westudy two interprocedural programanalysis problems—interprocedural slicing and interprocedural dataflow analysis—and present the following results: • Interprocedural slicing is logspace complete forP. • The problem of obtaining “meetoverallvalidpaths ” solutions to interprocedural dataflow analysis problems isPhard. • Obtaining “meetoverallvalidpaths ” solutions to interprocedural gen/kill dataflow analysis problems is logspace complete forP. These results provide evidence that there do not exist fast (NCclass) parallel algorithms for interprocedural slicing and interprocedural dataflow analysis (unlessP ⊆NC). That is, it is unlikely that there are algorithms for interprocedural slicing and interprocedural dataflow analysis for which the number of processors is bounded by a polynomial in the size of the input, and whose running time is bounded by a polynomial in the logarithm of the size of the input. This suggests that there are limitations on the ability to use parallelism to overcome compiler bottlenecks due to expensive interproceduralanalysis computations. 1.
A General Theory of SemiUnification
, 1993
"... Various restrictions on the terms allowed for substitution give rise to different cases of semiunification. Semiunification on finite and regular terms has already been considered in the literature. We introduce a general case of semiunification where substitutions are allowed on nonregular term ..."
Abstract
 Add to MetaCart
Various restrictions on the terms allowed for substitution give rise to different cases of semiunification. Semiunification on finite and regular terms has already been considered in the literature. We introduce a general case of semiunification where substitutions are allowed on nonregular terms, and we prove the equivalence of this general case to a wellknown undecidable data base dependency problem , thus establishing the undecidability of general semiunification. We present a unified way of looking at the various problems of semiunification. We give some properties that are common to all the cases of semiunification. We also the principality property and the solution set for those problems. We prove that semiunification on general terms has the principality property. Finally, we present a recursive inseparability result between semiunification on regular terms and semiunification on general terms. Partly supported by NSF grant CCR9113196. Address: Department of Compu...