23 citations found. Retrieving documents...
N. Oxhj, J. Palsberg, and M.-I. Schwartzbach. Making type inference practical. In Proceedings of the 6th European Conference on Object-1 d Programming, volume 615 of Lecture Notes in Computer Science, pages 329--349. Springer-Verlag, 1992.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Dimensions of Precision in Reference Analysis of Object-oriented.. - Ryder (2003)   (7 citations)  (Correct)

.... analyses [15, 14, 4] were used to provide a static call graph that initialized computation for a subsequent, more precise reference analysis [29, 8, 23, 45] Other analyses constructed the call graph lazily, as new call edges became known due to discovery of a new object being referred to [27, 31, 48, 33, 26, 23]. Grove and Chambers discuss the relative merits of both approaches and conclude that the lazy construction approach is preferred [18] Clearly, the trend is to use the lazy construction approach so that the analysis includes a reachability calculation for further accuracy. This can be especially ....

.... Other analyses used creation sites to identify equivalence classes of objects each corresponding to one representative object in the reference analysis solution [33, 18, 23, 48] There are other, more precise object naming schemes which establish finer grained equivalence classes for objects [18, 26, 27, 31, 24]. While the use of one abstract object per class may suffice for call graph construction, for richer semantic analyses (e.g. side effect, def use and escape analyses) the use of a representative for each object creation site is preferable. 3.5 Field sensitivity Another representation issue is ....

N. Oxhoj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In European Conference on Object-Oriented Programming, pages 329--349, 1992.


Inference of generic types in Java - Donovan, Ernst (2003)   (Correct)

....procedure call of the appropriate overriding implementation of the method. Likewise, if all run time types that reach a check satisfy the check, then the check can be removed. Polymorphism variety. Polymorphism occurs in both parametric (functional) and data varieties. Parametric polymorphism [22, 14 7, 21, 1, 2, 15, 26] refers to the ability of procedures to operate on arguments of arbitrary types, without caring what the specific type is; for example, length : list # int) Data polymorphism [9, 23] is the ability to store objects of different types in a variable or field. It is enabled by object oriented ....

....polymorphism. Abstract interpretation deals well with data polymorphism, since the goal is to determine what types may appear in a particular variable. Type system. The language s type system affects the analysis that must be performed on it. In a dynamically or implicitly typed language [20, 22, 21, 15, 10, 7, 1, 2], data polymorphism is implicit and elimination of type checks is a major motivation. However, there is little room for standard type analysis. Statically typed languages take advantage of compile time type checking. Type inference or reconstruction [17, 20, 15, 25] must be used even for ....

N. Oxhoj, J. Palsberg, and M. I. Schwartzbach. Making type inference practical. In ECOOP, pages 329--349, 1992.


Parameterized Object Sensitivity for Points-to and.. - Milanova, Rountev, Ryder (2002)   (4 citations)  (Correct)

....this variable. Typical clients of this information are call graph construction and virtual call resolution. Various practical contextinsensitive class analyses are presented in [17, 11, 5, 10, 28, 27] Di#erent mechanisms for context sensitivity have been studied in the context of class analysis [16, 1, 18, 2, 13]; these methods typically use some combination of the parameter types to abstract context. The work in [16, 1, 2] presents class analyses for Smalltalk and Self. Similarly to our analysis, these analyses use information about the receiver object in order to create and select contextual method ....

....contextinsensitive class analyses are presented in [17, 11, 5, 10, 28, 27] Di#erent mechanisms for context sensitivity have been studied in the context of class analysis [16, 1, 18, 2, 13] these methods typically use some combination of the parameter types to abstract context. The work in [16, 1, 2] presents class analyses for Smalltalk and Self. Similarly to our analysis, these analyses use information about the receiver object in order to create and select contextual method versions. Unlike our analysis, they use additional information (e.g. the method invocation site) The idea of object ....

N. Oxhoj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In European Conference on Object-Oriented Programming, pages 329--349, 1992.


Partial Evaluation for Class-Based Object-Oriented Languages - Schultz (2000)   (4 citations)  (Correct)

....binding time as its subclasses. Note that the class Object has neither fields nor methods, and thus never serves as the qualifying type in such expressions. More precise type annotations can be obtained by using a more precise type inference algorithm, several of which are presented in literature [20, 21, 23]. In summary, the binding times of two classes are linked across a common superclass if an object qualified by this common superclass is the subject of a field access or method invocation. Had we used a more precise type inferencing algorithm, we would have had a di#erent behavior. 9 # # c : S ....

N. Oxhj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In O.L. Madsen, editor, Proceedings of the European Conference on Object-Oriented Programming (ECOOP'92), volume 615 of Lecture Notes in Computer Science, pages 329--349, Utrecht, The Netherlands, 1992. Springer-Verlag.


Abstract Interpretation of Linear Logic Programming - Andreoli, Castagnetti.. (1993)   (11 citations)  (Correct)

.... of a proof 4 ) our abstraction techniques could then be used to discard pieces of code which are never used with respect to certain initial states (a similar techniques has been recently applied in the context of class based object oriented languages for compile time detection of dead code [43]) 5 Related Work Abstract interpretation has been formalized in [21, 20] in the framework of imperative languages, and has later been adopted for the analysis of functional and logic programming languages. There is a large body of work in static analysis of Logic Programming based on abstract ....

N. Oxhj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In Proc. of ECOOP'92, Utrecht, The Netherlands, 1992.


Partial Evaluation for Class-Based Object-Oriented Languages - Schultz (2000)   (4 citations)  (Correct)

....for a given inferred type, an expression is annotated with the complete set of possible subtypes. More precise type annotations (i.e. including a smaller set of types) can be obtained in many cases by using a more precise type inference algorithm, several of which are presented in literature [19, 20, 22]. 9 5 Well Annotatedness We now define a set of rules that ensure 2EFJ well annotatedness: a wellannotated (and well typed) 2EFJ program either diverges, stops at the reduction of an illegal type cast, or reduces to a specialized program. In this section, we present the binding times that we ....

N. Oxhj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In O.L. Madsen, editor, Proceedings of the European Conference on Object-Oriented Programming (ECOOP'92), volume 615 of Lecture Notes in Computer Science, pages 329--349, Utrecht, The Netherlands, 1992. Springer-Verlag.


Understanding and Improving the Performance of Modern Programming.. - Diwan (1997)   (1 citation)  (Correct)

....ffl Instruction scheduling ffl Register allocation ffl Code hoisting ffl Common subexpression elimination ffl Partial redundancy elimination ffl Resolving method invocations ffl Delta Delta Delta 1. 2 Type Analysis Many algorithms for type analysis have been proposed in literature [1, 13, 7, 15, 19, 32, 47, 82, 85, 86, 84, 83] (see Chapter 9 for a review) and they range from fast algorithms that only look at the types to exponential time algorithms incorporating context sensitive flow analysis. However, prior work has two major shortcomings. First, it ignores the situation when the full program is unavailable for ....

....between method invocations Figure 2.2 Instruction distribution between method invocations on the SPARC for M2toM3 There are two ways to improve the control flow information in the compiler. First, program analysis may reduce the set of possible procedures called at each method invocation [1, 13, 7, 15, 19, 32, 39, 47, 82, 85, 86, 84, 83] . This analysis is effective only on monomorphic method invocations. Second, a program may be transformed so that the performance critical method invocations can be converted to direct calls. An example is splitting, which duplicates code to reduce the number of types possible at each method ....

[Article contains additional citation context not shown here]

Oxhoj, N., Palsberg, J., and Schwartzbach, M. I. Making type inference practical. In Proceedings of European Conference on Object-Oriented Programming, pages 329--349. Springer-Verlag, 1992.


The Concert System -- Compiler and Runtime Support for.. - Andrew Chien Vijay (1993)   (11 citations)  (Correct)

....Example The Concert compiler uses a constraint based approach to type inference which determines not The Concert System 8 only whether a program is type safe but also a safe approximation of the type of each program variable. The type inference system is an extension of that described in [29]. Local constraints are established and propagated according to a set of rules for primitive operations such as object creation, assignment, and usage. A continuous approximation of the control flow is maintained, and constraints are built for the paths along this flow. When all constraints ....

....be available. The available type information is used to determine the interprocedural control flow graph required for a variety of traditional program analyses. The Concert type inference system extends the capability of of traditional constraint based type systems for object oriented languages [29] in four ways. First, the extended inference system allows variable precision based on control flow and object creation points. This allows compiler effort to be focused where it will be most productive. Second, in order to support a broad variety of concurrency constructs, the Concert type system ....

N. Oxhj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In Proceedings of OOPSLA '92, 1992.


Precise Concrete Type Inference for Object-Oriented Languages - John Plevyak Andrew (1994)   (132 citations)  (Correct)

....by dynamic dispatch (virtual function invocation) and first class functions (and selectors) the very program structures for whose optimization its results are most critical. Previous work has shown that constraint based type inference systems can be used to safely approximate concrete types [15], but their use can be expensive and their results imprecise. We present an incremental constraint based type inference which produces precise concrete type information for a much larger class of programs at lower cost. Our algorithm extends the analysis in response to discovered imprecisions, ....

....so concrete type information is essential to deriving accurate control flow a prerequisite to virtually all program analysis and optimization. However, the presence of type dependent dispatch means that the control flow, type inference, and data flow problems are coupled. Previous work [15] formulated the concrete type inference problem as a monotonic solution of a constraint network, solving all three problems simultaneously. However, it has drawbacks: 1) it does not type many common program structures, and 2) its logical extension to such structures has space and time complexity ....

[Article contains additional citation context not shown here]

N. Oxhj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In Proceedings of OOPSLA '92, 1992.


Using Types to Analyze and Optimize Object-Oriented Programs - Diwan, McKinley, Moss (2001)   (6 citations)  (Correct)

.... 1998; Shapiro and Horwitz 1997a] The majority of previous work on method invocation resolution has evaluated the analyses using dynamic and static evaluation [Agesen 1995; Burke et al. 1995; Bacon and Sweeney 1996; Calder and Grunwald 1994; Carini et al. 1995; Dean et al. 1994; Fernandez 1995; Oxhoj et al. 1992; Pande 1996; Plevyak and Chien 1994; Pande and Ryder 1995; Palsberg and Schwartzbach 1991] Bacon et al. Bacon and Sweeney 1996] in concurrent work has used limit evaluation to evaluate method resolution analyses. We first review the strengths and weaknesses of static, dynamic, and limit ....

Oxhoj, N., Palsberg, J., and Schwartzbach, M. I. 1992. Making type inference practical. In Proceedings of European Conference on Object-Oriented Programming. Springer-Verlag, 329-- 349.


Precise Type Analysis by Abstract Interpretation - Knoop, al. (1996)   (Correct)

....to detect dead code in an argument program, i.e. code which will never be executed, an information from which it directly profits as dead program parts cannot invalidate type information. The power introduced by filters is demonstrated when applying our analysis to the Smalltalk like language of [OPS]: Here, it reveals that programs of this language are statically deterministic, i.e. a program encodes just a single program execution. Fundamental to achieve this result is to adapt the framework of abstract interpretation (cf. CC, Ma] which has proved to be a powerful and theoretically ....

....object oriented languages is an active field of research within the last fifteen years, and there is a broad variety of approaches that have been proposed for it. In spirit most closely related to our approach, though not really comparable, are the type inference based approaches as e.g. in [Ag1, Ag2, BI, GJ, Jo, OPS, PS1, PS2, Su], and the data flow analysis (DFA) based approaches as e.g. in [PC1, PC2, VHU] They characterize the state of the art of the type inference and the data flow analysis based approaches, respectively. The type inference approaches of [Ag2, OPS, PS2] improve on previous approaches of this group ....

[Article contains additional citation context not shown here]

Oxhj, N., Palsberg, J., and Schwartzbach, M. I. Making type inference practical. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'92) (Utrecht, The Netherlands), Springer-Verlag, Heidelberg, LNCS 615 (1992), 329 - 349.


Fast Static Analysis of C++ Virtual Function Calls - Bacon, Sweeney (1996)   (59 citations)  (Correct)

....information within procedures, but performs no interprocedural analysis at all. Measured speedups for benchmarks of significant size were on the order of 25 , and code size reduction was also on the order of 25 . There has been considerable work on type inference for dynamically typed languages [20, 8, 1, 17]. In a recent paper [2] Agesen and Holzle showed that type inference can do as well or better than dynamic receiver prediction in the self compiler, and proceeded to extrapolate from these results to C by excluding dispatches for control structures and primitive types. However, C and self may ....

Oxhj, N., Palsberg, J., and Schwartzbach, M. I. Making type inference practical. In Proceedings of the European Conference on ObjectOriented Programming -- ECOOP'92 (Utrecht, Netherlands, June 1992), O. L. Madsen, Ed., vol. 615 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, Germany, pp. 329--349.


Scalable Program Analysis and Understanding Based on Type.. - O'Callahan (1998)   (1 citation)  (Correct)

....7.1.2. Closure Analyses for Object Oriented Programs Grove, Dean, DeFouw and Chambers [GDDC97] survey a number of algorithms for call graph construction for object oriented languages. The algorithms studied include those of Palsberg and Schwartzbach [PS91] Oxhj, Palsberg and Schwartzbach [OPS92], and Agesen [A95] The call graph construction problem is essentially the same as closure analysis: identify the possible targets of an indirect function (or procedure, or method) invocation. They conclude our experiments demonstrated that scalability problems prevent the flow sensitive ....

N. Oxhj, J. Palsberg and M. Schwartzbach. Making type inference practical. Proceedings of the European Conference on Object Oriented Programming, 1992.


An Actor-Based Framework For Real-Time Coordination - Ren (1997)   (6 citations)  (Correct)

....is associated with a time value, or more generally, a function of some input values which returns a time value. A time value (function) represents the time required to complete that specific computation, and is system architecture, application code, and input dependent. With the current compiler [9, 67] and partial evaluation [66, 19] technology, we can easily generate such a graph. Combining the timed computation tree with the time constraint graph (Section 4.1) may take exponential time even though the algorithm is straightforward search the timed computation tree and add each edge in time ....

N. Oxhoj, J. Palsberg, and M. I. Schwartzbach. Making Type Inference Practical. In Proceedings of ECOOP'92, pages 329--349. Springer-Verlag (LNCS 615), 1992.


Thal: An Actor System For Efficient And Scalable Concurrent.. - Kim (1997)   (8 citations)  (Correct)

....parameter relations in message send expressions. Then, the algorithm tries to iteratively solve the two sets of type constraints. Existence of the smallest solution means the program is type safe. If none exists, the program is rejected as type unsafe. The implementation is similar to that of [99]; it incrementally builds a trace graph and successively refines the solution. A trace graph represents all possible message sends in any program execution. Incremental construction of a trace graph and successive refinement of the solution make complexity of the implementation polynomial. If a ....

....may conservatively alert programmers of the possible presence of deadlock. The THAL compiler is able to do so by using a form of global flow analysis to construct a call graph and checking whether or not the request sends form a (potential) cycle. The compiler constructs a message trace graph [99] for a given program and detects a cycle that contains a request send whose result is used to define the next state of the actor. The trace graph can represent only a subset of all possible message trace. Thus, detecting deadlock using a trace graph can be no more than an approximation. But it is ....

[Article contains additional citation context not shown here]

N. Oxhoj, J. Palsberg, and M. I. Schwartzbach. Making Type Inference Practical. In Proc. ECOOP'92, pages 329--349. Springer-Verlag (LNCS 615), 1992.


Efficient Support of Location Transparency in Concurrent.. - Wooyoung Kim (1995)   (6 citations)  (Correct)

....describe related research in x 8. 2 The Language and Its Computational Model Hal [15, 3] is an untyped but statically type checked, actor based language. Types are implicit in programs. The compiler infers types for each expression in a program using a constraint based type inference algorithm [27]. It generates C code as its output. In this section, we briefly review the Actor model of computation on which Hal is based. We also discuss language abstractions relevant to the rest of the paper. For a more detailed description of the language constructs, see [3] 2.1 The Actor Model Actors ....

....local messages [29, 18, 22] The difficulty in using static method dispatch lies in the fact that the method to be invoked may not be determined statically because of late binding and type dependent method dispatch in object oriented languages. The compiler uses a constraint based type inference [27] to determine the recipient s type (i.e. class) for each message send. If the compiler can infer the unique type for the recipient it generates code for static method dispatch with locality check as well as code for the message send [22] The runtime system provides the compiler with the locality ....

[Article contains additional citation context not shown here]

N. Oxhoj, J. Palsberg, and M. I. Schwartzbach. Making Type Inference Practical. In Proc. ECOOP'92, pages 329--349. Springer-Verlag (LNCS 615), 1992.


Scalable Propagation-Based Call Graph Construction Algorithms - Tip, Palsberg (2000)   (59 citations)  Self-citation (Palsberg)   (Correct)

....While adding Hindley Milner polymorphism seems not to be worthwhile [15] we have conducted some initial experiments with the use of data polymorphism. The idea is well known: treat each distinct allocation site as a separate class, and keep the fields in these artificial classes distinct [27, 18]. Similarly, distinct sets may be used when methods are invoked on objects of the same type but allocated at different sites. Data polymorphism has the potential of significantly increasing the cost (more elements have to be propagated, and the number of distinct sets may increase as well) ....

Oxhj, N., Palsberg, J., and Schwartzbach, M. I. Making type inference practical. In Proceedings of ECOOP'92, Sixth European Conference on Object-Oriented Programming (Utrecht, The Netherlands, July 1992), Springer-Verlag (LNCS 615), pp. 329--349.


Type Analysis and Type-test Elimination in Oberon-2 - Jens Knoop And   (Correct)

No context found.

N. Oxhj, J. Palsberg, and M.-I. Schwartzbach. Making type inference practical. In Proceedings of the 6th European Conference on Object-1 d Programming, volume 615 of Lecture Notes in Computer Science, pages 329--349. Springer-Verlag, 1992.


Appears in New Generation Computing, 15(4), 1997 - Static Analysis Of (1996)   (Correct)

No context found.

N. Oxhj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In Proc. of ECOOP'92, Utrecht, The Netherlands, 1992.


Parameterized Object Sensitivity for Points-to Analysis for .. - Milanova, Rountev, Ryder (2002)   (Correct)

No context found.

N. Oxhoj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In European Conference on Object-Oriented Programming, pages 329--349, 1992.


Precise and Practical Flow Analysis of Object-Oriented Software - Milanova (2003)   (Correct)

No context found.

N. Oxhoj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In European Conference on Object-oriented Programming, pages 329--349, 1992.


Context Sensitivity for Points-to Analysis - Using Annotated Inclusion   (Correct)

No context found.

N. Oxhoj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In ECOOP, pages 329--349, 1992.


Extensible Object-Orientation - Szyperski (1992)   (1 citation)  (Correct)

No context found.

OPS92 N. Oxhoj, J. Palsberg, M. I. Schwartzbach. Making Type Inference Practical. Proc. ECOOP'92, Utrecht, The Netherlands, June, 1992. LNCS, 615, 329_349. Jun 1992.

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