| Vitek, J., Nigel Horspool, R.: Compact Dispatch Tables for Dynamically Typed Programming Languages, CC'96 Conference Proceedings, 1996. |
....of Dynamic Binding We present two extremes in the spectrum of dynamic binding algorithms: dispatch table search (DTS) and selector indexed dispatch tables (STI) and discuss their relative merits. The algorithms presented here have been implemented in hand optimized assembly language [16]. To get a meaningful comparison of dispatch speed, we chose a concrete target architecture: the SUN SPARC processor. For space comparisons we use data extracted from OBJECTWORKS SMALLTALK; a real life class library. We use the hierarchy of Figure 1 to illustrate the algorithms. Class names are ....
....retaining most of the speed up obtained by the dispatch table technique In an earlier paper [14] we proposed the compact dispatch table (CT 94) techniques. We give a short description of CT 94 as it is the basis for the work described in this paper. A detailed account can be found in [14] and [16]. The technique applies four different optimizations to the full STI tables, and a pre processing and a post processing step. 4.1 Factoring Out Conflict Selectors The first step of our algorithm performs pre processing, separating the STI tables of Figure 2 into two. One contains normal ....
[Article contains additional citation context not shown here]
Vitek, J: Compact Dispatch Tables for Dynamically Typed Programming Language. M.Sc. Thesis, University of Victoria, 1995.
....the inherited methods contribute to the additional entries found in these schemes. Since, many embedded applications are memory constrained the additional data space is a concern. Various compaction techniques like selector coloring and compact tables can be used to reduce the size of these tables [19]. However, most of the compaction schemes have to recompute the dispatch table every time a new class is loaded [6] This renders the compaction schemes unsuitable in Java s dynamically linked environment. Cache based schemes eliminate the need to create and maintain the dispatch tables. Three ....
J. Vitek, "Compact Dispatch Tables for Dynamically Typed Programming Languages ", Object Applications,ed. D. Tzichritzis, Univ. of Geneva, Centre Universitaire d'Informatique, Aug. 1996. 346
....call at run time and can be a critical component of execution performance in object oriented languages. Most of the commercial object oriented languages rely on dispatching of methods with only one argument, the so called mono method or unary dispatching problem. A number of papers, see e.g. [3, 12, 17, 22, 23, 27], have studied the unary dispatching problem, and Ferragina and Muthukrishnan [17] provide a linear space data structure that supports unary dispatching in log logarithmic time. However, the techniques in these papers do not apply to the more general multi method dispatching problem in which more ....
Jan Vitek. Compact dispatch tables for dynamically typed programming languages. M. Sc. University of Victoria, 1995.
....[DAS98, p. 139] Using this algorithm, the compiler 8 This compression technique is based on a conversation between the author and Thomas Cormen. Both of us currently deny authorship. 9 Vitek and Horspool describe several variable sized partitioning techniques for singledispatch languages in [VH96] Index Argument O#set Size 0 1 2 3 1 A 4 1 2 2 2 2 E 4 1 2 3 4 Figure 11: Pole tables compressed using o#set table fragments. 7 Argument A D E H 1 ptr 1 ptr 0 2 ptr 0 ptr 2 Pointer 0 1 2 3 ptr 0 0 0 0 0 ptr 1 1 2 2 2 ptr 2 1 2 3 4 Figure 12: Pole tables compressed using ....
....16: Dispatch code for argument coloring compression [DAS98] ditional branch statements, which may cause some pipeline problems on certain processors. 3. 3 Fixed Size Partitioning Vitek and colleagues describe several ways to compress traditional C vtables using variable sized partitions [VH96] These partitioning algorithms can be adapted for compressing pole tables. We designed a simple algorithm based on fixed size partitions. We begin by breaking the pole table into fixed size blocks (typically 32 or 64 entries wide) and searching for blocks which contain only one value. In most ....
Jan Vitek and R. Nigel Horspool. Compact dispatch tables for dynamically typed programming languages. In Proceedings of the International Conference on Compiler Construction, 1996.
....SRP uses a uni dispatch technique to maintain the vector of potential methods for each individual argument. These vectors are typically compressed to conserve space. Many different compression techniques are known: row displacement, selector coloring [2] and compressed selector table indexing [25]. Our implementation uses selector coloring, because timing experiments [17] indicates that technique provides the fastest dispatch times. 7 Future Work Our MSA and tuned SRP dispatchers are the most complete. They support null as a dispatchable argument, multi dispatch on other invoke ....
J. Vitek and R. N. Horspool. Compact dispatch tables for dynamically typed programming languages. In Proceedings of the International Conference on Compiler Construction, 1996.
....so selector indices are class specific. However, indices are constrained to be equal across inheritance subgraphs. Such uniqueness is not possible in multiple inheritance, in which case multiple tables are stored in each multi derived class. 5. CT: Compact Selector Indexed Dispatch Tables ( VH96] separate selectors into one of two groups: standard selectors have one main definition and are only overridden in subclasses, and conflict selectors are those that do not have one common root type defining the selector. Two different tables are maintained, one for standard selectors, the other ....
Jan Vitek and R. Nigel Horspool. Compact dispatch tables for dynamically typed programming languages. In Proceedings of the Intl. Conference on Compiler Construction, 1996. 34
....from a parent and does not redefine or introduce any new methods. Such sharing of type columns is more feasible if the table is partitioned into subtables by grouping a number of rows together. This strategy was used in the single receiver dispatch technique called Compressed Dispatch Table (CT) [16]. We have one data structure per behavior, D k oe , and MRD compresses these per behavior data structures by row displacement into three global data structures: a Global Master Array, M , a set of Global Index Arrays, I j , where j = 0; K Gamma2) and a Global Behavior Array, B . In ....
....[ I 1 [ I 0 [ B [ ffi ] num(E) num(D) num(B) 4) Substituting the data from Fig. 8e into Expr. 4 yields the method ffi 1 , as shown in Expr. 5. M [ I 1 [ I 0 [ 7 4 ] 3 ] 1 ] M [ I 1 [ I 0 [ 11 ] 3 ] 1 ] M [ I 1 [ 5 3 ] 1 ] 5) M [ I 1 [ 8] 1 ] M [ 15 1 ] M [ 16 ] = ffi 1 5.4 Optimizations Single I . For simplicity of presentation, we defined an Index Array per arity position. Actually, we only need one Global Index Array, I , to store all level 0 to level (k Gamma 2) arrays. Using a single Index Array provides additional compression, and has no negative ....
Vitek, J., Nigel Horspool, R.: Compact Dispatch Tables for Dynamically Typed Programming Languages, CC'96 Conference Proceedings, 1996.
....class, so selector indices are class specific. However, indices are constrained to be equal across inheritance subgraphs. Such uniqueness is not possible in multiple inheritance, in which case multiple tables are stored in each multi derived class. 5. CT: Compact Selector Indexed Dispatch Tables ( VH96] separate selectors into one of two groups: standard selectors have one main definition and are only overridden in subclasses, and any selector that is not standard is a conflict selector. Two different tables are maintained, one for standard selectors, the other for conflict selectors. The ....
....for incrementally assigning indices so that the new index does not cause index conflicts. An index conflict occurs when two class selector pairs with differing method sets access the same entry in the table. Since it is undesirable for an entry to contain more than one method set (see [VH94, VH96] we want to resolve the conflict by assigning new indices to one of the class selector pairs. Note that since indices are table specific, and each table has a single selector index strategy and class index strategy, it is the index strategy instances that maintain the currently assigned ....
[Article contains additional citation context not shown here]
Jan Vitek and R. Nigel Horspool. Compact dispatch tables for dynamically typed programming languages. In Proceedings of the Intl. Conference on Compiler Construction, 1996. This article was processed using the L A T E X macro package with LLNCS style
No context found.
Vitek, J., Nigel Horspool, R.: Compact Dispatch Tables for Dynamically Typed Programming Languages, CC'96 Conference Proceedings, 1996.
No context found.
Jan Vitek, Compact Dispatch Tables for Dynamically Typed Programming Languages, in this volume.
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