| R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA'89 Conference Proceed ings, 1989. |
....the class provides an implementation. This reduces the size of tables to 860 KB for an implementation of OBJECTWORKS. Dynamically typed programming languages lack the static type information needed by VTBL. Instead, a number of dispatch table compression algorithms have been proposed [7] 25] [24], 36] 46] The most effective of them is the row displacement scheme of Driesen [25] with an 86 compression of the tables. In the above example 1 MB is still required for the dispatch tables. These compression algorithms are computationally intensive. The row displacement scheme is the ....
....inherited from C. In that traditional model, the compiler gathers all sorts of useful information when it compiles one program unit only to throw everything away as soon as the code has been generated. Many researchers, the author included, advocate global program optimizations [7] 21] 2] [24], 25] 57] which require a different model of compilation. We distinguish the following world assumptions: Open: the program is divided into separate units which can be compiled independently. This is the case of SMALLTALK where a class can be modified without affecting its subclasses. ....
[Article contains additional citation context not shown here]
Dixon, R., McKee, T., Schweitzer, P., Vaughan, M.: A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. Proc. OOPSLA'89s, New Orleans, LA, Oct. 1989.
....The trend seems to be away from multiple inheritance; the designers of recent languages such as Java and C# decided that the complexities introduced by multiple inheritance far outweighed its utility. It is widely accepted that multiple inheritance creates some serious implementation problems [14, 43]; we believe that it also introduces serious conceptual problems. Our study of these problems has led us to the present design for traits. This research was partially supported by the National Science Foundation under award CCR0098323. Although multiple inheritance makes it possible to reuse ....
....shortcomings with respect to reusability. In particular we describe specific problems of mixin composition that have not been identified previously in the literature. Note that this section is focused on reusability issues. Other problems with inheritance such as implementation difficulties [14, 43] and conflicts between inheritance and subtyping [2, 25, 26] are outside the scope of this paper. Single Inheritance is the simplest inheritance model; it allows a class to inherit from at most one superclass. Although this model is well accepted, it is not expressive enough to allow the ....
[Article contains additional citation context not shown here]
R. Dixon, T. McKee, M. Vaughan, and P. Schweizer. A fast method dispatcher for compiled languages with multiple inheritance. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, volume 24, pages 211--214, October 1989.
....The trend seems to be away from multiple inheritance; the designers of recent languages such as Java and of C# decided that the complexities introduced by multiple inheritance outweighed its utility. It is widely accepted that multiple inheritance creates some serious implementation problems [DMVS89] SG99] we believe that it also introduces serious conceptual problems. Our study of these problems has led us to the present design for traits. This research was partially supported by the National Science Foundation under award CCR0098323. Although multiple inheritance makes it possible to ....
....and practical problems regarding reusability. In particular we describe specific problems of mixin composition that have not been identified previously in the literature. Note that this section is focused on reusability issues. Other problems with inheritance such as implementation difficulties [DMVS89] SG99] and conflicts between inheritance and subtyping [Ame90] MMMP90] LP91] are outside the scope of this paper. Single Inheritance. Single inheritance is the simplest inheritance model; it allows a class to inherit from (at most) one superclass. Although this model is well accepted, it is not ....
[Article contains additional citation context not shown here]
R. Dixon, T. McKee, M. Vaughan, and Paul Schweizer. A fast method dispatcher for compiled languages with multiple inheritance. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, pages 211--214, October 1989. Published as Proceedings OOPSLA '89, ACM SIGPLAN Notices, volume 24, number 10.
....method. When different classes implement the interface, the method can be at different positions in their method tables. There exists some work to reduce the overhead in a system that does not impose our restrictions [1] In our translator we use an approach that is similar to selector coloring [20]. It makes interface invocations as fast as method invocations at the cost of (considerably) larger method tables. The size of the x86 machine code in the complete JX system is 1,010,752 bytes, which was translated from 230,421 bytes of bytecode. The method tables consume 630,388 bytes. These ....
R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. In Proc. of the Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 211-214, 1989.
....dispatch tables for interface method dispatch, but reduces the space impact by releasing gaps in the dispatch tables to the allocator to reallocate as small objects [18, 19] Although clever, this trick can significantly complicate both allocation and garbage collection. 7 Selector coloring [15] has been applied to reduce the size of selector indexed dispatch tables. Just as in register allocation [6] the assignment of identi ers to selectors can be viewed as a graph coloring problem. Two selectors can be assigned the same color if they are never implemented by the same class. Using ....
....[6] the assignment of identi ers to selectors can be viewed as a graph coloring problem. Two selectors can be assigned the same color if they are never implemented by the same class. Using this approach, several algorithms have been proposed that greatly reduce the size of the dispatch tables [15, 4, 45, 44]. Unfortunately, all of these algorithms assume that the set of selectors and the classes that implement them are known a priori. Thus, previous selector coloring algorithms are a poor match for Java, since the JVM cannot know this information in advance. CACAO s second scheme for interface ....
R. Dixon, T. McKee, M. Vaughan, and P. Schweizer. A fast method dispatcher for compiled languages with multiple inheritance. In Proceedings OOPSLA '89, pages 211-214, Oct. 1989. Published as ACM SIGPLAN Notices, volume 24, number 10.
....It would be more sophisticated in the case of multiple inheritance. In LOD , during the preprocessing step, the entire interface hierarchy is scanned, and a unique color (identi er) assigned to each member function name in the hierarchy. These colors are found by the graph coloring algorithm[12]. We use colors as indices for the member functions in each my class table. The member function identi ers for the above example are de ned by our preprocessor, as follows. enum lod FtnId FTN ERROR ID = 1, 11 FTN insert ID = 0, FTN set name ID, FTN get name ID ; Implementations The ....
R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. \A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance". In Proc. of the ACM OOPSLA Conf., pages 211-214, 1989.
....in terms of space [17, 12] Space overhead is of particular importance for space constrained systems such as embedded and pervasive computing systems. Most previous work on efficient C implementation has focused either on implementing just one language feature, such as multiple inheritance [24, 22, 9, 10]; or on reducing time overhead, such as for virtual dispatch [4, 11, 3, 6, 21, 8, 2] In this paper, we quantify and evaluate the space overhead for three language features: virtual dispatch, virtual inheritance, and dynamic typing. We also study the space overhead due to the interaction between ....
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In Proceedings of the 1989 ACM Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 211--214, New Orleans, LA, October 1989. ACM Press, New York, New York.
....Existing schemes for object memory layout and method dispatch in statically typed languages with multiple inheritance assume the use of multiple inheritance in its full generality. These schemes incur high per object space overhead [Str87] extra dispatch cost, or a global type analysis phase [DMSV89] Web site: http: www.pmg.lcs.mit.edu andru . This research was supported in part by the Advanced Research Projects Agency of the Department of Defense, monitored by the Office of Naval Research under contract N00014 91 J 4136 and in part by the National Science Foundation under grant ....
....[Str87] to work well with current architectures and programming practice. Almost all the optimizations defined here can be applied to C compilers in a straightforward manner. Muchwork on object layout has focused on assigning non conflicting indices so each class has a single dispatch vector [DMSV89] The resulting dispatch vectors may be sparse and contain multiple holes, so compressing them is a major concern [PW90, Dri93] There are two important problems with these techniques: first, they are not compatible with separate compilation. Adding a new class or classes to the system can ....
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA '89 Conference Proceedings, pages 211--214, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(10),October, 1989.
....Existing schemes for object memory layout and method dispatch in statically typed languages with multiple inheritance assume the use of multiple inheritance in its full generality. These schemes incur high per object space overhead [Str87] extra dispatch cost, or a global type analysis phase [DMSV89] Web site: http: www.pmg.lcs.mit.edu andru . This research was supported in part by the Advanced Research Projects Agency of the Department of Defense, monitored by the Office of Naval Research under contract N00014 91 J 4136 and in part by the National Science Foundation under grant ....
....[Str87] to work well with current architectures and programming practice. Almost all the optimizations defined here can be applied to C compilers in a straightforward manner. Muchwork on object layout has focused on assigning non conflicting indices so each class has a single dispatch vector [DMSV89] The resulting dispatch vectors may be sparse and contain multiple holes, so compressing them is a major concern [PW90, Dri93] There are two important problems with these techniques: first, they are not compatible with separate compilation. Adding a new class or classes to the system can ....
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA '89 Conference Proceedings, pages 211--214, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(10),October, 1989.
....computation, CBI allows constant time method lookup. Idol makes use of Icon s implementation of selector table indexing to provide this constant time performance; selector table indexing has been discussed and useful optimizations presented in recent papers by Dixon et al. and by Driesen [Dixo89][Drie93] In more dynamic languages this constant time lookup would be provided at the expense of recomputing closures whenever the class hierarchy changes; this would presumably occur much less often than method invocation. Implementing CBI in a dynamic language and measuring the frequency and ....
Dixon, R. and McKee, T. A Fast Method Dispatcher for Compiled Languages With Multiple Inheritance. In Meyrowitz, N., editor, Proceedings of the Fourth ACM Conference on Object-Oriented Programming Systems, Languages and Applications, volume 24, pages 211--214, New Orleans, LA, October 1989.
....idea behind these techniques is to determine a system wide mapping of message names to vtbl array indices such that no two message names defined for the same object map to the same index. Dixon et al. use a graph coloring technique to determine message names which must be given distinct indices [DMSV89]; they report that only a small amount of space is wasted in empty vtbl array entries. Pugh and Weddell propose a novel extension that allows negative indices [PW90] The extra degree of freedom in assigning indices without wasting space saves a significant amount of space. They report only 6 ....
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. In OOPSLA '89 Conference Proceedings, pp. 211-214, New Orleans, LA, October, 1989. Published as SIGPLAN Notices 24(10), October, 1989.
....defined in a top level class) Thus, with dynamic typing, VTBL dispatch tables would degenerate to STI tables since any arbitrary message could be sent to an object, forcing selector numbers to be globally unique. 3.3. 3 Selector coloring (SC) Selector coloring, first proposed by Dixon et al. [38], and applied to Smalltalk by Andre and Royer [9] is a compromise between VTBL and STI. SC is similar to STI, but instead of using the selector to index into the table, SC uses the selector s color. The color is a number that is unique within every class where the selector is known, and two ....
....as M divided by the actual number of entries for which storage is allocated. For instance, dividing M by the product of the number of classes and the number of selectors calculates the fill rate of the two dimensional class selector table employed by STI (see Section 3.3. 1) Selector coloring (SC) [38][9] expresses table compression as a graph coloring problem. The graph represents selectors by nodes. An edge between two nodes means that the corresponding two selectors occur in the same class. The aim of the coloring algorithm is to assign a color to each node of the graph so that adjacent ....
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. OOPSLA `89 Conference Proceedings, pp. 211-214, New Orleans, LA, October 1989.
....dispatch table, that holds the precalculated result of dispatching for all possible function invocations. Optimization techniques have been developed to minimize the size of the dispatch table by eliminating entries corresponding to function invocations for which there is no applicable method [Dixon et al. 1989; Ellis and Stroustrup 1992; Huang and Chen 1992; Driesen and Holzle 1995] The reduction factor is experimentally measured to be up to 66 in [Driesen and Holzle 1995] The dispatch table technique does not naturally scale up for multi methods because additional target arguments create new ....
....1 :type index] m argn [o n :type index] call ms(o 1 ; on ) In a dynamically typed language, run time type checking is needed to verify the content of m arg i [o i :type index] and D c m before calling the MS method. 3. 4 Argument Array Coloring Coloring has been proposed in [Dixon et al. 1989] to compress dispatch tables of mono methods. This technique is applicable to argument arrays for grouping into one array several arrays which hold non null cells at different positions. We shall call selector, noted (m; i) an argument position i in a generic function m. A selector is associated ....
[Article contains additional citation context not shown here]
Dixon, R., McKee, T., Schweizer, P., and Vaughan, M. 1989. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA Conference Proceedings. 211--214.
....or not depends on the dispatch technique. 1. STI: Selector Table Indexing ( Cox87] uses a a two dimensional table in which both class and 7 selector indices are unique. This technique is not practical from a space perspective and is never used in implementations. 2. SC: Selector Coloring ( DMSV89, AR92] compresses the two dimensional STI table by allowing selector indices to be non unique. Two selectors can share the same index as long as no class recognizes both selectors. The amount of compression is limited by the largest complete behavior (the largest set of selectors recognized by a ....
R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA'89 Conference Proceedings, 1989.
....a precalculated two dimensional table, where e.g. types appear as column indices and method names as line indices. Run time dispatch then comes down to an access in this table. As this leads to tables too large in practice, optimization techniques reduce them by removing their empty cells, as in [DMPM89, ES92, HC92, DH95] Efficient, constant time run time dispatch techniques allow to predict the execution time of run time dispatch, which is necessary in some contexts like real time systems or query optimization. Moreover, these techniques are also complementary of variable time techniques, to ....
R. Dixon, T. McKee, P.Schweizer, and M.Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In Proc. OOPSLA, pages 211--214, 1989.
....runtime overhead of one memory indirection plus an equality test. The technique is similar to virtual function table lookup of C , but it reduces the space requirements of dispatch tables. It can o#er constant time performance. Many algorithms for compressing dispatch tables have been proposed [ Dixon et al. 1989; Andre and Royer 1992; Driesen 1993; Amiel et al. 1994; Driesen and Holzle 1995 ] These optimization techniques can be used in SPiCE. Static type prediction The Self compiler uses customized compilation that generates multiple versions of machine code according to the type of receiver of a ....
R. Dixon, T. McKee, P. Schweizer, and M. Vaughan: "A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance," in OOPSLA
....methods are found by intersecting corresponding covers. Since the method precedence rule does not totally order methods, if two applicable methods are found that do not have an order defined between them, such a call is declared ambiguous. Finally, in the presence of single dispatching, Dixon [9] and Andr , et al. 4] apply the minimal coloring theories to construct lookup tables. In single dispatching, only the types of receivers are of interest. Although all possible dispatch cases are prefilled in the lookup tables, yet the memory overhead may not be so crucial than in ....
DIXON, R. VAUGHAN, P., AND SCHWEIZER, P. A Fast Method Dispatcher for Compiled Language with Multiple Inheritance. In Proc. Conf. OOPSLA, 1989.
....I use in analyzing the performance of a solution. 2.2.1 Memory Usage Memory usage is an issue for object layouts. Most fast dispatching schemes share a table or set of tables among all objects of a class. Some researchers have been concerned about making these tables as small as possible [11, 20]. However, since dispatch tables are shared, they consume a small fraction of memory, assuming that there are a reasonable number of objects per dispatch table. This is a good assumption in class based object oriented languages, although it may be untrue for systems such as Self, where individual ....
....of sequential allocation, while still keeping indices reasonably dense, may allow dispatch tables to be merged more often. The limit of merging is a system in which every two types can be merged. This approach requires assigning method indices based on a global analysis of the type hierarchy [11]. Unfortunately, the problem of allocating method indices for all classes while minimizing the wasted dispatch table space is NP hard [21] Heuristics for index assignment have been developed that reduce the wasted space to about 6 , using two directional record layout [20] The wasted space in ....
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA '89 Conference Proceedings, pages 211--214, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(10), October, 1989.
No context found.
R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. A fast method dispatcher for compiled languages with multiple inheritance. In OOPSLA'89 Conference Proceed ings, 1989.
No context found.
R. Dixon, T. McKee, M. Vaughan, and P. Schweizer. A fast method dispatcher for compiled languages with multiple inheritance. In Proceedings of the 4 Object-Oriented Programming Systems, Languages, and Applications, pages 211--214, New Orleans, Louisiana, Oct. 1-6 1989.
No context found.
DIXON, R. VAUGHAN, P., AND SCHWEIZER, P. A Fast Method Dispatcher for Compiled Language with Multiple Inheritance. In Proc. Conf. OOPSLA, 1989.
No context found.
R. Dixon, T. McKee, P. Schweitzer, and M. Vaughan. A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. OOPSLA `89 Conference Proceedings, pp. 211-214, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(10), October 1989.
No context found.
T. Dixon, M. Vaughan, P. Sweizer. A fast Method Dispatcher for Compiled Languages with Multiple Inheritance
No context found.
DIXON, R. VAUGHAN, P., AND SCHWEIZER, P. A Fast Method Dispatcher for Compiled Language with Multiple Inheritance. In Proc. Conf. OOPSLA, 1989.
No context found.
R. Dixon, T. McKee, P. Schweitzer and M. Vaughan, A Fast Method Dispatcher for Compiled Languages With Multiple Inheritance. OOPSLA '89, New Orleans LA, 1989.
First 50 documents
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