| M. Kaplan and J. Ullman, `A scheme for the automatic inference of variable types', Journal of ACM,vol. 27 no. 1, pp. 128-145. Jan 1980. |
....Most Lisp compilers such as ORBIT [11] or Screme [12] will do local tagging optimizations [1] TICL [13]isatype system for Common Lisp but it relies on user declarations. Type inference in high level dynamic typed languages is not a new problem. Early works on this problem include [19] 14] and [15]. Their approaches are mainly based on data flow analysis. Shivers [4] and Henglein s [2] works are the inspiration for ours. In particular, our approach is similar to Shivers 0CFA[4] whichdoescontrol flow analysis on distinct call sites, except that ffl wedonotworkwithacontinuation passing ....
M. Kaplan and J. Ullman, `A scheme for the automatic inference of variable types', Journal of ACM,vol. 27 no. 1, pp. 128-145. Jan 1980.
....components are each limited to single types (no side effects of types) and explicit type declarations are sometimes required. 2.2. Kaplan Ullman Fixed Point Iteration The second approach to static inference of data types is attributable to an approach by Jones and Muchnick [6] Kaplan and Ullman [7] have improved this imperative approach and obtained more exact type information for program statements. In the approach suggested by Kaplan and Ullman programs are modelled as directed graphs, with nodes representing assignments and edges representing the direct control flow relations between ....
Kaplan, M. A. and Ullman, J. D. A scheme for the automatic inference of variable types. Journal of the ACM, 27, 1 (January 1980) 128--145.
....least or greatest fixed points of computable functions. Various fixed point theorems due to Tarski [75] Kleene [45] Cousot and Cousot [18] and others [8] have been applied by Scott to program semantics [69] have been used by Cocke and Schwartz [13] Kildall [44] Tenenbaum [77] and others [36, 42, 16, 67, 43, 74] to specify and implement global program analysis problems, are important to program verification [16, 17, 20, 23] arise in complexity theory [79, 39, 40, 33, 35, 59] and are used to support high level program transformations [2, 29, 7, 49, 62, 53, 56, 11, 54, 70, 60, 81, 51] We are further ....
....(s) live, s) 4 because in general f (s live) live f (s) live n 4 4 4.3. Recomputation of Fixed Points of Distributive Functions Although we can recompute least fixed points incrementally under some conditions, the decremental recomputation of least fixed points is much more difficult. In [43], Kaplan and Ullman specify their solution to a general weak type analysis problem as GFP(Y F(s) where Y(s) LFP(s B(x) x) F(s) LFP(s F(x) x) and B and F are two monotone functions representing backward and forward type analysis respectively. They compute this greatest fixed point as ....
Kaplan, M. and Ullman, J. "A Scheme for the Automatic Inference of Variable Types". JACM 27, 1 (1980), 128-145.
....it appears that all values are expected to be fully tagged at run time. 3 Collecting type information for latently typed languages is far from new. Type finding based on classical data flow analysis technology goes back to Tenenbaum [Ten74] Jones and Muchnick [JM76,JM82] and Kaplan and Ullman [KU80]; more recently it has been extended and adapted to SETL by Weiss [Wei86] to Icon by Walker [Wal88] to Common LISP by Ma and Kessler [MK90] to Scheme by Shivers [Shi91a] see below) Type information is also instrumental in optimizing the implementation of functional 3 The article [CF91] ....
M. Kaplan and J. Ullman. A scheme for the automatic inference of variable types. J. ACM, 27(1), Jan. 1980.
....reliable indicator of potential program errors. Nevertheless, Henglein has used a formulation of static typing enhanced with to eliminate many run time checks from Scheme programs. The designers of optimizing compilers for Scheme and Lisp have developed type analyzers based on data flow analysis [3, 11, 12, 13, 19]. The information gathered by these systems is important for program optimization, but it is much too coarse to serve as the basis for a soft type system. None of the systems infer polymorphic types and most infer types that are simple unions of type constants. 6 Future Work We have developed ....
Kaplan, M. A., and Ullman, J. D. A scheme for the automatic inference of variable types. Journal of the Association for Computing Machinery 27, 1 (January 1980), 128--145.
.... specifically for partial inference of otherwise untypable functional programs [4] Related to our work, there is also the algorithm of Mishra and Reddy, which can deal with recursive structures [16] In this classification, the imperative methods are based on algorithms of Kaplan and Ullman [8, 9] and of Miller [14] In Common Lisp terms, they deal mainly with generic functions (like arithmetic operators that are overloaded on many types) As such, they must start with values of known types (literals or user supplied declarations) then infer the types of other values. The goal is to ....
....is inferred from operations on other variables. A constant propagation algorithm that treats variables independently (e.g. using a constant cross variable product lattice) cannot do this. In addition to propagating type assertions forward, some algorithms also propagate type expectations backward [6, 8, 9, 14]. This allows two useful optimizations: moving several identical type checks to a common point, and hoisting loop invariant type checks out of the loop. For us, however, the advantage is small. Well known optimization techniques, like common subexpression analysis and hoisting of loop invariant ....
Marc A. Kaplan and Jeffrey D. Ullman. A scheme for the automatic inference of variable types. Journal of the Association for Computing Machinery, 27(1):128--145, January 1980.
....context in which it operates and chooses the right sub automaton to perform. Whether the automaton thus obtained is optimal or not is an open question. 4 Language independent type system The collection of types supported by a programming language is usually studied as the lattice of types [Mil78, KU80] and the type system is seen as a procedure of the compiler that determines the type of a programming language object using the operation that constructs this object and the types of its operands. We consider types as mathematical abstractions which exist independent of the programming language ....
M.C. Kaplan and F.D. Ullman. A scheme for the automatic inference of variable types. Journal of the ACM, 27(1):128--145, 1980. Types = Latice T; type of program variables is deduced at each operation executed by the program from the signature of the operation, type of the input, and type of the result.
....components are each limited to single types (no side effects of types) and explicit type declarations are sometimes required. 2.2. Kaplan Ullman Fixed Point Iteration The second approach to static inference of data types is attributable to a proposal by Jones and Muchnick [6] Kaplan and Ullman [7] refined this idea to obtain more exact type information for given program statements. In the approach suggested by Kaplan and Ullman, programs are modelled as directed graphs, with nodes representing assignments and edges representing direct control flow relations between assignments. The ....
Kaplan, M. A. and Ullman, J. D. A scheme for the automatic inference of variable types. Journal of the ACM, 27, 1 (January 1980) 128--145. 16 KIND, FRIEDRICH
....image generation (see Section 5.5) 4 Language independent type system Types are computing abstractions which exist independent of the programming language that uses them and which are constructed from given types [26] using algebraic operations. Our goal here is to use the existing type theory [25, 16] for the development of a language independent type system where types are elements of a database and are generated from other types using a given collection of predefined types and type constructors. A compiler can use this database by appropriate queries during language processing, independent ....
M.C. Kaplan and F.D. Ullman. A scheme for the automatic inference of variable types. Journal of the ACM 27(1) (1980) 128--145.
....written by the user. It appears that the programmer must understand the coercion insertion algorithm to understand the meaning of a program. 6.2. 2 Flow Analysis The designers of optimizing compilers for Scheme and Lisp have developed type recovery procedures based on iterative flow analysis [8, 33, 39, 40]. Some object oriented languages use similar methods [12, 34] The information gathered by these systems is important for program optimization, but it is generally too coarse to serve as the basis for a soft type system. Few of the systems infer polymorphic types; none accommodate higher order ....
....union types. Unboxing certain kinds of values could also simplify the problem of integrating Soft Scheme with other languages, like C. We also believe that type information such as Soft Scheme infers has the potential to guide many kinds of program global optimizations. Various Lisp compilers [8, 33, 39, 40] and some object oriented systems [12, 34] use iterative flow analysis techniques to determine type information for optimization. The idea of using type information derived from type inference for optimization seems to have received little attention in the literature. 128 8.5 Programming ....
Kaplan, M. A., and Ullman, J. D. A scheme for the automatic inference of variable types. Journal of the Association for Computing Machinery 27, 1 (January 1980), 128--145.
....the utility of the inferred type information. Nevertheless, Henglein has used a formulation of static typing enhanced with to eliminate many run time checks from Scheme programs. The designers of optimizing compilers for Scheme and Lisp have developed type analyzers based on data flow analysis [4, 9, 13, 14, 15, 21]. The information gathered by these systems is important for program optimization, but it is much too coarse to serve as the basis for a soft type system. None of the systems infer polymorphic types and most infer types that are simple unions of type constants and constructions. 6 Future Work ....
Kaplan, M. A., and Ullman, J. D. A scheme for the automatic inference of variable types. Journal of the Association for Computing Machinery 27, 1 (January 1980), 128--145.
.... The World of Type Analysis There are two distinct algorithmic approaches to type analysis: flow analysis and type inference, which have also been called imperative and functional [5, 24] Of the imperative algorithms, the strictly data flow order ones fall under the framework of Kaplan and Ullman [19, 20] (later extended by Miller [25] As explained in Section 1.2, type information in such algorithms propagate in data flow order, from variable definition to variable use. In contrast, control flow order algorithms (including Algorithm P ) pass information along the control flow graph. As a result, ....
Marc A. Kaplan and Jeffrey D. Ullman. A scheme for the automatic inference of variable types. Journal of the Association for Computing Machinery, 27(1):128--145, January 1980.
No context found.
Kaplan, Marc A., and Ullman, Jeffrey D. "A Scheme for the Automatic Inference of Variable Types". ACM JACM 27,1 (Jan. 1980),128-145.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC