28 citations found. Retrieving documents...
Holzle, U., Chambers, C. & Ungar, D. (1991), Optimizing dynamically-typed object-oriented languages with polymorphic inline caches, in `ECOOP'91 European Conference on ObjectOriented Programming', Springer Verlag Lecture Notes in Computer Science 512, Springer-Verlag, Geneva.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Compact Dispatch Tables for Dynamically Typed Programming Languages - Vitek (1996)   (10 citations)  (Correct)

....call sites and not messages. One call site can be monomorphic, whereas an other site with the same message selector can be megamorphic. Of course, a call site can belong to different categories during different runs of the program. Techniques which speed up message passing by inline caching [23] [33] rely on the locality of types at call sites. They are fastest for monomorphic sites or for sites which exhibit good temporal locality, that is polymorphic site where the type of the receiver varies slowly over time. Here again there is a difference between pure and hybrid languages. Pure ....

....In SELF 9 of calls are polymorphic, 40 in Cecil and 69 in C [31] This may affect the hit rate for inline caching techniques. On the other hand, Hlzle has shown that the degree of polymorphism is not the most important factor and that temporal locality of types may be more important [33]. Still, we feel that as type are more volatile, caching techniques may prove less performant for hybrid languages. 2.5.5 Closed versus Open World A compiler operates under certain assumptions about the outside world. These assumptions, called world assumptions , while not part of the ....

[Article contains additional citation context not shown here]

Hlzle, U., Chambers, C., Ungar, D.: Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. Proc. ECOOP'93, Seventh European Conf. on Object-Oriented Programming, Springer-Verlag, 1993.


Compact Dispatch Tables for Dynamically Typed Object Oriented .. - Vitek, Horspool   (8 citations)  (Correct)

....class. In other words, they are always bound to the same method. Static binding of those call sites would not affect the program s semantics. But the difficulty lies in deciding which call sites can safely be bound statically. In the best case, only a portion of the calls will be bound statically [10], 12] 14] The second solution is to reduce the cost of dynamic binding. Efficient implementations of dynamic binding have been the focus of much research, yet it is customary to see modern dynamically typed object oriented languages spend more than 20 of their time handling messages. This ....

....of DTS is a function of the cost of probing the hash table, of the average number of probes per table, and of the average number of tables visited per message send [5] For SMALLTALK 80, a message requires, on average, 8. 48 hash table probes [2] The cost of DTS is estimated as 250 cycles [13] [10]. Although very slow, DTS is space efficient. For this reason, it is used as a backup strategy in SMALLTALK 80 [3] LISP [11] and SELF [10] Driesen [6] estimates the memory requirements of DTS to be 2MH, where M is the number of methods in the system and H is the hash table overhead (133 ) ....

[Article contains additional citation context not shown here]

Hlzle, U., Chambers, C., Ungar, D.: Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. Proc. ECOOP'93, Springer-Verlag, 1993.


A Member Lookup Algorithm for C++ - Ramalingam And Harini (1997)   (5 citations)  (Correct)

....lookup. If jM j denotes the number of member names in the program, then the worst case complexity 9 [1] function dominates ( L1,V1) L2,V2) f [2] return (V2 2 virtual bases[L1] or (V1 = V2 6= Omega Gamma3 [4] procedure doLookup( f [5] for each class C in topological sort order f [6] Identify list of members for C [7] Members[C] M[C] 8] for every direct base class X of C [9] Members[C] Members[C] Members[X] 10] Identify dominating definition for each member of C [11] for every m 2 Members[C] f [12] if (m 2 M[C] then [13] lookup[C,m] ....

....two objects that does not contain any other object with a member called m. Member lookup in Self is done completely at run time, and, hence, the speed of the lookup greatly affects the performance of Self programs. Hence, several techniques have been developed to optimize the lookup at run time [7, 6]. These techniques, however, are not directly relevant to compiletime member lookup. Attali et al. 4] present a semantics and algorithm for lookup in Eiffel, another language with multiple inheritance. Member lookup in Eiffel is complicated by the presence of a feature called renaming, that ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proc. of the European Conf. on Object-Oriented Programming, July 1991.


The Complexity of Type Analysis of Object Oriented Programs - Gil, Itai (1998)   (6 citations)  (Correct)

....to use simple inlining of routines in the presence of dynamic binding. This effect is only aggravated by the fact that OO programming style effects many small routines. A large body of research has been dedicated to the study of cost in time of dynamic binding and in efforts to minimize it. See [HCU91, DGC95, DMM96, PBF96, ZCC97] for some examples of the many works on the various aspects of the topic. It has been widely observed that a large portion of virtual function calls, if not most of them, are in fact monomorphic, i.e. that the class of the receiver in a particular call site was always the same at program run ....

Holzle U., Chambers C. and D. Ungar., Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches. ECOOP'91.


Type-Safe Delegation for Dynamic Component Adaptation - Kniesel   (3 citations)  (Correct)

.... called LAVA ( 6, 21] A description of implementation techniques for more traditional, C like environments can be found in [16] We are exploring the feasibility of a high performance implementation on the basis of the techniques initially developed in the Self project and follow up work ([2, 11, 12, 13, 14]) which are currently being incorporated into Java (under the brand name HotSpot ) Summarizing, the integration of delegation into mainstream object oriented languages offers an easy way . to make an object appear to be part of and act on behalf of various other ones, to make objects ....

U. Hlzle; C. Chambers; D. Ungar: "Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches". In Proceedings ECOOP'91, LNCS 512, P. America (Ed.), pp. 21-38. Geneva, Switzerland, Springer-Verlag, 1991.


A Study of Exception Handling and Its Dynamic.. - Ogasawara, Komatsu.. (2001)   (8 citations)  (Correct)

....how they changed the method inlining heuristics; however, their report implies that aggressive method inlining can cause an explosion of code size and compilation time. Method inlining is one of the most widely applied optimizations in both static compilers [15, 17, 9] and dynamic compilers [35, 7, 51]. The central issue in the optimization is how aggressively inlining should be performed. Di#erent compilers adopt di#erent heuristics for addressing the issue. However, to the best of our knowledge, there is no heuristics that takes exceptions into account. There are many studies that focus on ....

Holzle, U., Chambers, C., and Ungar, D. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of the 5th European Conference on Object-Oriented Programming - ECOOP '91 (Lecture Notes in Computer Science, Vol. 512) (Berlin, July 1991), Springer-Verlag, pp. 21--38.


Efficient Implementation of Java Interfaces.. - Alpern, Cocchi.. (2001)   (8 citations)  (Correct)

....check that the receiver s type matches and calls the method lookup routine when the check fails. Inline caches are extremely e ective if the call site is monomorphic, or at least exhibits good temporal locality, but perform poorly at most polymorphic call sites. Polymorphic inline caches (PICs) [22] were developed to overcome this weakness. In a polymorphic inline cache, the call site invokes a dynamically generated PIC stub that executes a sequence of tests to see if the receiver object matches previously seen cases. If a match is found, then the correct target method is invoked; if a match ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In P. America, editor, Proceedings ECOOP '91, LNCS 512, pages 21-38, Geneva, Switzerland, July 15-19 1991. Springer-Verlag.


The Case for Dynamic Optimization - Improving.. - Kistler, Franz (1999)   (1 citation)  (Correct)

....be achieved by using it. A variety of techniques have been proposed to speed up execution (and message dispatch in particular) of systems based on the pure object oriented languages Smalltalk and Self. The resulting dynamic compilation systems [Ungar and Smith 1987; Chambers et al. 1989; Holzle et al. 1991; Chambers 1992; Holzle 1994; Holzle and Ungar 1996] provide incremental code generation, but once a piece of code has been optimized, it becomes static. Hence, no re optimization is performed in response to changes in user behavior. One of the central findings of this paper, however, is that it ....

H olzle, U., Chambers, C., and Ungar, D. 1991. Optimizing Dynamically-Typed ObjectOriented Languages With Polymorphic Inline Caches. In ECOOP'91 European Conference on Object-Oriented Programming, Springer Lecture Notes in Computer Science 512, Geneva, Switzerland, pp. 21--38.


The Case for Dynamic Optimization - Improving.. - Kistler, Franz (1999)   (1 citation)  (Correct)

....be achieved by using it. A variety of techniques have been proposed to speed up execution (and message dispatch in particular) of systems based on the pure object oriented languages Smalltalk and Self. The resulting dynamic compilation systems [Ungar and Smith 1987; Chambers et al. 1989; Holzle et al. 1991; Chambers 1992; Holzle 1994; Holzle and Ungar 1996] provide incremental code generation, but once a piece of code has been optimized, it becomes static. Hence, no re optimization is performed in response to changes in user behavior. One of the central findings of this paper, however, is that it ....

H olzle, U., Chambers, C., and Ungar, D. 1991. Optimizing Dynamically-Typed ObjectOriented Languages With Polymorphic Inline Caches. In ECOOP'91 European Conference on Object-Oriented Programming, Springer Lecture Notes in Computer Science 512, Geneva, Switzerland, pp. 21--38.


Complexity Analysis of Late Binding in Dynamic.. - Pontelli, Ranjan, Gupta   (Correct)

....This result is an improvement over existing approaches that typically have a complexity of N) per operation. The data structures are very practical and can be easily employed in actual implementations. Indeed the general idea resembles optimizations adopted in various object oriented systems [1, 12, 18, 39]. The abstraction of the name resolution problem for dynamic objectoriented languages in terms of dynamic trees, the derivation of a lower bound on complexity of name resolution, and the development of an ecient, new implementation technique for it, are the main contributions of this paper. To ....

.... of our knowledge, are novel, and complement similar studies focused on more specialized languages or techniques [25, 29, 37, 1, 11] The data structures adopted to develop our upper bounds are also generalizations and extensions of the tabling and caching mechanisms proposed by various researchers [11, 10, 18]. We do not make any pretense to have completely solved the problems we consider. In fact, we raise numerous open questions. One of the goals of this paper is to bring these problems to the attention of both the data structures and programming languages communities, as well as to point out the ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing Dynamically-typed Object-Oriented Languages with Polymorphic Inline Caches. In Proceedings ECOOP. Springer Verlag, 1991. 30


An Automatic Object Inlining Optimization and its Evaluation - Dolby, Chien (2000)   (16 citations)  (Correct)

....as Java, simply retrieving a value can go from a load instruction to a dynamically dispatched message send on a heap object. Interface overheads are often exhibited as slower and more frequent procedure calls and pointer dereferences. The overheads induced by indirect method calls are well studied [3, 1, 9, 31, 35, 28, 29, 16, 36], and both static and dynamic optimizations developed by our group and others in the community can dramatically reduce such procedure calling overhead. But modular software design also incurs ineciencies in data structure design and layout, because it encourages composing generic structures ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In ECOOP'91 Conference Proceedings. Springer-Verlag, 1991. Lecture Notes in Computer Science 512.


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

....complexity. Our approach, which also has an exponential worst case time complexity, is not heuristic. A different setting has recently been considered by Pande and Ryder proposing a type analysis for C [PR] Conceptually completely different and incomparable to our approach are the approaches of [AH, Ch, HCU, HU], which propose an interleaving of program execution with type analysis, e.g. during the pauses of the programmer (user) in order to exploit the feedback yielded by monitoring ( profiling ) previous program executions. Moreover, the approaches cited above, including also the conceptually ....

Holzle, U., Chambers, C., and Ungar, D. Optimizing dynamically--typed object-oriented languages with inline caches. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'91) (Geneva, Switzerland), Springer-Verlag, Heidelberg, LNCS 512 (1991), 21 - 38.


Continuous Program Optimization: A Case Study - Kistler, Franz (2003)   (4 citations)  (Correct)

.... et al. 1998] and the Jalapeno system [Alpern et al. 1999; Alpern et al. 1999] Typical optimizations performed by these systems include run time type feedback [Holzle and Ungar 1994] message inlining [Dean and Chambers 1994] message splitting [Chambers 1992] polymorphic inline caches [Holzle et al. 1991], customization [Chambers and Ungar 1989] and escape analysis [Choi et al. 1999] In contrast, our work focuses primarily on traditional optimizations and on novel optimizations that specifically exploit live profiling data. Our work di#ers from these system in another aspect: Although all of ....

H olzle, U., Chambers, C., and Ungar, D. 1991. Optimizing Dynamically-Typed ObjectOriented Languages With Polymorphic Inline Caches. In Proceedings of the 5th European Conference on Object-Oriented Programming (ECOOP). Geneva, Switzerland, 21--38.


Preserving Information during Online Partial Evaluation - Ruf, Weise (1992)   (Correct)

....operation, in which portions of the control flow graph following a conditional is compiled separately for each outcome of the conditional, is isomorphic to specializing an if expression which has been transformed into continuation passing style. The polymorphic inline caching methods of Holzle [22] suggest a possible new frontier for program specialization. At present, specializers only build variants based on different specializationtime information; polymorphic operations which cannot be reduced to a monomorphic form at specialization time are left in their general form. By replacing such ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In ECOOP '91 Conference Proceedings, pages 21--38. Springer-Verlag LNCS, July 1991.


A Core Library For Robust Numeric and Geometric.. - Karamcheti, Li.. (1999)   (17 citations)  (Correct)

....SPECIALIZATION. Information about the expression skeleton (its structure, the types of input and output values, and associated precision) enables several static and dynamic optimizations that reduce objectorientation overheads The most signi cant bene t is the elimination [27, 9] or optimization [16] of dynamic method dispatches, which in turns enable other optimizations such as inlining and cloning [28] that increase the e ectiveness of traditional sequential optimizations. DATA SPECIALIZATION. Knowledge of the expression structure also enables memory e cient layout employing optimizations ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of ECOOP'91, 1991.


Static Type Determination and Aliasing for C++ - Pande, Ryder (1995)   (24 citations)  (Correct)

....to aid their algorithm in performing optimizations and type safety checks. Recent work on improving run time efficiency of SELF, a dynamically typed language, uses customization, iterative type analysis and inline caches to replace dynamic binding with procedure calls or inlined code [CU89, CU90, HCU91] More recently, the algorithms using run time type feedback [HCU94] and type inference [APS93] for optimizing SELF programs have shown promise of adaptability to C . The algorithm by Larcheveque [Lar92] is rendered imprecise by the fact that it factors out the side effects of function ....

U. Holzle, C. Chambers and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of the European Conference on Object Oriented Programming, July 1991.


Static Type Determination for C++ - Pande, Ryder (1994)   (28 citations)  (Correct)

....to aid their algorithm in performing optimizations and type safety checks. Recent work on improving run time efficiency of the dynamically typed language SELF uses customization, iterative type analysis and inline caches to replace dynamic binding by procedure calls or inlined code [CU89, CU90, HCU91] The algorithm by Larcheveque [Lar92] is rendered imprecise by the fact that it factors out the side effects of method invocations and aliasing due to parameter bindings as well as pointers. The suggested algorithms for these problems [CK89, Wei84] are grossly approximate and unsuitable in C ....

U. Holzle, C. Chambers and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of the European Conference on Object Oriented Programming, July 1991.


Efficient Implementation of Multi-Methods through static analysis - Turau, Chen (1995)   (1 citation)  (Correct)

....type case expressions are inserted into the code, given preference to classes which occurred more often. Then the program is recompiled [7, 9] Research into the second direction can be classified into dynamic and static techniques. Dynamic techniques are based on caches and their organization [10, 8]. Static techniques usually aim at finding data structures which are both time and space efficient. Compressing dispatch tables is one possibility [1] The above mentioned techniques are available for single and multi dispatched methods, even so things are much more complicated in the second ....

Holzle, U., Chambers, C. and Ungar, D. Optimizing Dynamically-Typed ObjectOriented Languages with Polymorphic Inline Caches. Proc. ECOOP 1991.


Perpetual Adaptation of Software to Hardware: An Extensible.. - Kistler, Franz (1999)   (Correct)

....and which optimizations to perform. Related to this is research on how to boost application performance by combining profiling data and code optimizations at compile time (not at runtime) including work on method dispatch optimizations for object oriented programming languages [Ungar 1987; Holzle et al. 1991], profile guided intermodular optimizations [Srivastava and Wall 1993; Chang et al. 1992] code positioning techniques [Pettis and Hansen 1990; Cohn and Lowney 1996] and profile guided data cache locality optimizations [Calder et al. 1998; Chilimbi and Larus 1998; Kistler and Franz 1998] In ....

H olzle, U., Chambers, C., and Ungar, D. 1991. Optimizing Dynamically-Typed ObjectOriented Languages With Polymorphic Inline Caches. In ECOOP'91 European Conference on Object-Oriented Programming, Springer Lecture Notes in Computer Science 512, Geneva, Switzerland, pp. 21--38.


Static Type Determination and Aliasing for C++ - Pande, Ryder (1995)   (24 citations)  (Correct)

....have acceptable complexity for reasonable precision on real programs. Jagannathan and Wright compare various existing techniques for analysis of such languages and motivate the need for alternative data flow techniques [JW95] Earlier work on dynamically dispatched methods includes [CU89, CU90, HCU91, Lar92, PS91, Par92, SS92, Suz81, VHU92] 2 Problem Definition Program Representation A control flow graph (CFG) for a function consists of nodes which represent single entry, single exit regions of executable code, and edges which represent possible execution branches between code regions. We ....

U. Holzle, C. Chambers and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of the European Conference on Object Oriented Programming, July 1991.


Reconciling Responsiveness with Performance in Pure.. - Hölzle, Ungar   Self-citation (Hlzle Ungar)   (Correct)

....is extended in some way to record the desired information, e.g. by keeping a table of receiver types per call site. In the SELF system, no additional mechanism is needed to record receiver types since the system uses polymorphic inline caches to speed up dynamic dispatch. As observed in [Hlzle et al. 1991], these caches record receiver types as a side effect. Therefore, a program s type profile is readily available, and collecting the type feedback data does not incur any execution time overhead. However, the particular way in which type feedback information is collected is not important here; all ....

....by inlined methods, it is interesting to look at the characteristics of these type tests. In SELF 93, type tests are used in two situations: for sends inlined by type feedback (inlined tests) and for the dispatch of non inlined sends (dispatch tests) SELF uses Polymorphic Inline Caches (PICs [Hlzle et al. 1991]) to implement dynamically dispatched calls as a sequence of comparisons testing for the expected types, followed by a direct call. For example, if a non inlined send has had Point and rectangle receivers in the past, its PIC would first test the receiver type against Point and then against ....

[Article contains additional citation context not shown here]

HLZLE, U., CHAMBERS, C., AND UNGAR, D. 1991. Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches. ECOOP'91 Conference Proceedings. Springer Verlag Lecture Notes in Computer Science 512, Springer Verlag, Berlin.


Towards a Universal Implementation Substrate for.. - Mario Wolczko Ole   (1 citation)  Self-citation (Ungar)   (Correct)

....as fast as possible. When a single receiver type is invoked at a message send site, an inline cache [4] is used for dispatch. This adds only a few cycles of dispatch overhead to the call in the case that the cache hits. When multiple types occur at the call site, a polymorphic inline cache is used [8]. To support a wide variety of programming styles and techniques, the Self object management system is highly tuned to make object allocation, use and reclamation efficient. At peak rate, Self 4.0 on an UltraSPARC TM 1 with a 167MHz processor can allocate, initial Towards a Universal ....

Hlzle, U., C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Object-Oriented Programming Languages with Polymorphic Inline Caches. In ECOOP'91 Conference Proceedings, Geneva, Switzerland, July, 1991. Published as Springer-Verlag LNCS 512, 1991.


Strength Reduction for Loop-Invariant Types - Phung Hua Nguyen   (Correct)

No context found.

Holzle, U., Chambers, C. & Ungar, D. (1991), Optimizing dynamically-typed object-oriented languages with polymorphic inline caches, in `ECOOP'91 European Conference on ObjectOriented Programming', Springer Verlag Lecture Notes in Computer Science 512, Springer-Verlag, Geneva.


Binary Refactoring: Improving Code behind the Scenes - Tilevich, al. (2005)   (Correct)

No context found.

U. Hlzle, C. Chambers, and D. Ungar, "Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches", European Conference on Object-Oriented Programming (ECOOP), 1991.


Binary Refactoring: Improving Code behind the Scenes - Tilevich, al. (2005)   (Correct)

No context found.

U. Hlzle, C. Chambers, and D. Ungar, "Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches", European Conference on Object-Oriented Programming (ECOOP), 1991.


Fast Algorithm for Creating Space Efficient Dispatching Tables.. - Zibin, Gil (2002)   (Correct)

No context found.

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of the 5 Programming [30].


Techniques for Transparent Program Specialization in Dynamic.. - Sastry   (Correct)

No context found.

U. Holzle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches. In P. America, editor, ECOOP '91: European Conference on Object-Oriented Programming, volume 512 of Lecture Notes in Computer Science, pages 21--38. Springer-Verlag, 1991. 184


Incremental Algorithms for Dispatching in Dynamically Typed.. - Zibin, Gil   (Correct)

No context found.

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proceedings of the 5 number 512 in Lecture Notes in Computer Science, Geneva, Switzerland, July15--19 1991. ECOOP'91, Springer Verlag.

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