| Craig Chambers and David Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 146--160, June 1989. |
....optimization is performed at runtime, and thus a common characteristic of past dynamic analysis techniques is that they are limited in scope because they are usually performed on a single method (or a small number of methods) at a time. Early forms of dynamic optimization include customization [8] of methods and the addition of guards (runtime tests) 16] to enable optimization of code that is specialized to a likely target of an indirect call. More recent approaches enable analyses to be performed dynamically (while the program is executing) and optimistically (by ignoring feasible ....
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for Self, a dynamically-typed object-oriented programming language. In ACM Conference on Object-Oriented pages 146-160, July 1989. SIGPLAN Notices, 24(7).
....SELF is a completely dynamically typed language, and therefore advanced specialization techniques are required into order to get adequate performance. The largest overhead in SELF came from dynamic dispatch, and therefore the work was focused on converting dynamic calls to static calls [31, 32], or using type feedback with polymorphic inline caches to reduce the overhead [82] There was also some later derivative work in the same area [59, 73, 62, 75] More recently, Burger and Dybvig describe a profile driven dynamic recompilation system for Scheme [19] They describe using profile ....
Craig Chambers and David Ungar. Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. ACM SIGPLAN Notices, 24(7):146--160, July 1989.
....by Dolby and Chien is an automatic optimization that is applied by the compiler, object inlining in Lapis is a transformation controlled by the covariant declarations of the programmer. The triggering of optimization in Lapis and the propagation of type information is similar to customization [12] and its generalization selective argument specialization [14] Here, a method is optimized by propagating type information about the this argument and the formal parameters throughout the method, and using this type information to reduce virtual dispatches. Methods must be cloned since the ....
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for SELF, A dynamically-typed object-oriented programming language. In Bruce Knobe, editor, Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation (PLDI '89), pages 146--160, Portland, OR, USA, June 1989. ACM Press.
....of runtime information to improve code generation. For instance, the propagation of runtime constants may be used to feed optimizations such as strength reduction, dead code elimination, and constant folding. As another example, interpreters can compile frequently used code and execute it directly [2]; this technique can improve performance by an order of magnitude, compared to even heavily tuned interpreters [5] Unfortunately, current dynamic code generation systems are not satisfactory. Programmers must choose among portability, ease of programming (including debugging) and efficiency: ....
....matrix scaling by a runtime constant is shown in Figure 1. This example can be viewed as programmer expressed partial evaluation. Interpreters can use dynamic code generation technology to improve performance by compiling and then directly executing frequently interpreted pieces of code [2, 4]. To show that C can be used to do this easily and efficiently we present a recursive descent compiling interpreter that accepts a subset of C that we call Tiny C [5] Tiny C has only an integer type; it supports most of C s relational and arithmetic operations ( etc. and provides if ....
[Article contains additional citation context not shown here]
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. In Proceedings of PLDI '89, pages 146--160, Portland, OR, June 1989. 10
....variable) name has type type and body (or value) body. The instance (private) variables are initialized to 0, and the public procedures share the same behaviour every time an instance of that class is created. 5.1. 4 Delegation Based Languages In delegation based languages, such as SELF [US87, CU89] and CLOS there are no classes at all: the programmer creates specific instances of objects, and the intended behaviour is associated with individual objects. Building an object from another object means to delegate a portion of its behaviour to the original object. Any message not understood ....
....be classified either as class based or delegation based languages. In class based languages, such as SMALLTALK [GR83] and C [ES90] the implementation of an object is specified by its class and objects are created by instantiating their classes. In delegation based languages, like SELF [US87, CU89] objects are defined directly from other objects by adding new methods via method addition and replacing old methods bodies with new ones via method override. Adding or overriding a method produces a new object that inherits all the properties of the original. In this chapter, we consider the ....
C. Chambers and D. Ungar. Customization: Optimizing Compiler Technology for Self, a Dinamically-typed Object-Oriented Programming Language. In SIGPLAN-89 Conference on Programming Language Design and Implementation, pages 146--160, 1989.
.... and folding, common subexpression elimination, branch elimination, and so forth [APC 96] This technique also has been used in operating systems to eliminate repetitive checking of environment variables and to improve execution efficiency in languages that use dynamic type information [CU89] 4 Redefining the Hardware Software Interface The taxonomy of compiler optimizations described above assumes a fairly fixed interface between the hardware and the software. A fixed interface ensures backward compatibility so that existing software applications are guaranteed to run on new ....
Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for SELF. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 146--160, June 1989.
.... [GR83] are difficult to implement because of the high frequency of virtual method calls [DS84] CUL89] Much previous work has attempted to overcome this performance problem with a suite of optimization techniques aimed at reducing the cost of dynamic dispatch: inlining [CU93] customization ([CU89], CU93] splitting ( CU93] CU90] type inference [APS93] type feedback [HU94a] specialization [DCG95a] and adaptive optimization [HU94a] Together, these optimizations can dramatically improve the performance of pure object oriented languages. Many of these optimizations trade code space ....
....[The96] Although there are many differences between these systems, it appears likely that a partially customizing system could achieve its space reductions without an undue loss of performance. 7. Related Work Customization has been applied to several object oriented languages, including Self ([CU89], HU94a] Sather ( LS91] Trellis ( Kil88] and C ( Lea90] The96] Most of these systems combine customization with other optimization techniques (e.g. inlining and method splitting in Self. Because of the nature of customization it just enables the compiler to perform other ....
Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for Self, a Dynamically -Typed Object-Oriented Language. In Proceedings of the SIGPLAN `89 Conference on Programming Language Design and Implementation, Portland, OR, June
....call graph analysis becomes non trivial due to inheritance and function overloading. The method invoked from a call site depends on the type of the receiver, and static type determination is used to estimate control flow. Type analysis techniques have been developed for C [36] and SELF [4, 5]. 8 Conclusions and Further Work In this paper we have presented a new method for computing the points to information for stackallocated data structures. This method uses the concept of abstract stack locations to capture all possible and definite relationships between accessible stack ....
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for SELF, a dynamicallytyped object-oriented programming language. In Proceedings of the SIGPLAN '89 Symposium on Programming Language Design and Implementation, pages 146--160, June 1989.
....in Java bytecode thus seems bound to being rather inecient, which contrasts with one of the goals of expanded Ei el objects as well as with our C implementation. 8 Related work Although the customization or specialization of object oriented programs has been a technique known for some time [CU89,CU90] it seems it has lead to very few published work concerning the Java language or Java bytecode [SLCM99] Our work tends to con rm that customization of high level languages can be ported from one target low level code (ANSI C) to another (the Java bytecode) without loosing its interest and ....
Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Language. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation(PLDI'89), volume 24 of ACM SIGPLAN notices, pages 146-160, 1989.
.... and inhibit inlining, blocking subsequent traditional intra procedural compiler optimizations [6, 15] Thus, many compilers go to great lengths to replace virtual calls by direct calls [1, 13, 14, 26] some even using constrained specialization techniques [11, 20] such as customization [7]. Even so, virtual calls can only be completely eliminated when static analysis can safely determine that the class of the receiver object never changes. Most design patterns distribute functionality among objects that cooperate through abstract interfaces, simplifying software adaptation into a ....
.... of performing analysis, simplified type inference algorithms such as Class Hierarchy Analysis are used [13] combined with profile information that guides speculative optimizations such as receiver prediction [18, 20] Since techniques such as inlining and specialization for types (customization [7] and method argument specialization [11] can cause code explosion, the same profiling information is used to focus these optimizations on the critical parts of the program [12, 20] The optimizations offered by such systems depend on the accuracy of the analyses and profiling system. As a result, ....
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for SELF, A dynamically-typed object-oriented programming language. In B. Knobe, editor, Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation (SIGPLAN '89), pages 146--160, Portland, OR, USA, June 1989. ACM Press.
....voluminous to be included. The Scheme language is described in [30] the ML language in [67] and the Miranda language in [107] Simple polymorphic type systems are introduced in [47, 66] Slide 12,18 Simula and Beta are described in [36, 37, 56, 62] Smalltalk in [42, 43] CLOS in [53] Self in [108, 29, 26]; C in [98, 97, 100] and Eiffel in [64, 65, 39] Slide 21 26 The formalization of coercion functions is found in [89, 90] Slide 27 The use of coercion theory for phrase types is developed in [91, 75, 92] and for implicit scalings in [103] Slide 28 38 The basic encoding is presented in ....
.... inference is developed in [101, 45, 79, 76, 4] Slide 96 ML modules are described in [67, 106] Slide 97 Approaches to genericity are discussed in [63, 49, 61, 73, 83] Annotated Bibliography 104 Slide 98 Multi methods are presented in [53, 72, 24, 25] Slide 99 The Self language is described in [108, 26, 27, 28, 48, 3]. ....
Craig Chambers and David Ungar. Customization: Optimizing compiler technology for self, a dynamically-typed objectoriented programming language. In Proc. SIGPLAN'89 Conference on Programming Language Design and Implementation,
....routine, translates it, and completes the procedure call. Smalltalk 80, however, does not address the issue of how to ensure correct translation in the presence of multiple threads running on a shared memory multiprocessor. The Self compiler [8, 10] employs a specialization, called customization [9], that dynamically generates specialized versions of a method optimized for different calling context. Self, however, does not address the issue of a shared memory multiprocessor, either. Dynamic link libraries (DLL) allow for dynamically linking of libraries when the application executes. ....
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for Self, a dynamically-typed objectoriented programming language. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 146--160, July 1989. SIGPLAN Notices, 24(7).
No context found.
Craig Chambers and David Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 146--160, June 1989.
No context found.
C. Chambers and D. Ungar. Customization: Optimizing Compiler Technology for SELF. In Proceedings of 16th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '89), pages 146--160, 1989.
No context found.
CHAMBERS,C.AND UNGAR, D. 1989. Customization: Optimizing compiler technology for SELF, A dynamically-typed object-oriented programming language. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation (PLDI '89), B. Knobe, Ed. ACM Press, Portland, OR, USA, 146--160.
No context found.
Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Programming Language. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 146--160, June 1989.
No context found.
Craig Chambers and David Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. ACM SIGPLAN '89 Conference on Programming Languages Design and Implementation, pages 146160. June 1989.
No context found.
Craig Chambers and David Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. In Bruce Knobe, editor, Proceedings of the SIGPLAN 1989 Conference on Programming Language Design and Implementation, pages 146--160, Portland, OR, USA, June 1989. ACM Press.
No context found.
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for Self, a dynamically-typed object-oriented language. In PLDI, pages 146--160, Portland, OR, USA, June 1989.
No context found.
Chambers, C., and Ungar, D. Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. ACM SIGPLAN Notices 24, 7 (july 1989), 146--160.
No context found.
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language. In Proceedings of the SIGPLAN ' 89 Conference on Program Language Design and Implementation, Portland, OR, June 1989.
No context found.
C. Chambers and D. Ungar, "Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language," ACM SIGPLAN Notices, vol. 24, no. 7, pp. 146--160, July 1989, published as part of the proceedings of PLDI'89.
No context found.
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for Self, a dynamically-typed object-oriented programming language. In SIGPLAN '89 Conf. on Programming Language Design and Implementation, pages
No context found.
Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for SELF, A Dynamically-Typed Object-Oriented Programming Language. In ACM SIGPLAN '89 Conf. on Programming Language Design and Implementation, pages 146--160, June 1989.
No context found.
C. Chambers and D. Ungar, `Customization: optimizing compiler technology for Self, a dynamically-typed object-oriented programming language', Proceedings of the SIGPLAN'89 Conference on Programming Language Design and Implementation, Portland, OR, June 1989, 146--160.
First 50 documents Next 50
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