|
ABSTRACT
Given a type hierarchy, a subtyping test determines whether one type is a direct or indirect descendant of another type. Such tests are a frequent operation during the execution of object-oriented programs. The implementation challenge is in a space-efficient encoding of the type hierarchy that simultaneously permits efficient subtyping tests. We present a new scheme for encoding multiple- and single-inheritance hierarchies, which, in the standard benchmark hierarchies, reduces the footprint of all previously published schemes. Our scheme is called PQ-encoding (PQE) after PQ-trees, a data structure previously used in graph theory for finding the orderings that satisfy a collection of constraints. In particular, we show that in the traditional object layout model, the extra memory requirements for single-inheritance hierarchies is zero. In the PQE subtyping, tests are constant time, and use only two comparisons. The encoding creation time of PQE also compares favorably with previous results. It is less than 1 s on all standard benchmarks on a contemporary architecture, while the average time for processing a type is less than 1 ms. However, PQE is not an incremental algorithm. Other than PQ-trees, PQE employs several novel optimization techniques. These techniques are applicable also in improving the performance of other, previously published, encoding schemes.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
Alpern, B., Cocchi, A., and Grove, D. 2001. Dynamic type checking in Jalapeño. In Java Virtual Machine Research and Technology Symposium, J. Clifford, B. G. Lindsay, and D. Maier, Eds. USENIX, Monterey, California.
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
Battista, G. D. and Tamassia, R. 1996. On-line maintenance of triconnected components with SPQR-trees. Algorithmica 15, 4 (Apr.), 302--318.
|
| |
7
|
Booth, K. S. and Leuker, G. S. 1976. Testing for the consecutive ones property, interval graphs, and graph planarity using PQ-tree algorithms. J. Comput. Sys. Sci. 13, 3 (Dec.), 335--379.
|
| |
8
|
|
| |
9
|
|
 |
10
|
|
| |
11
|
Chambers, C. 1993. The Cecil language, specification and rationale. Tech. rep. TR-93-03-05. University of Washington, Seattle, WA.
|
 |
12
|
|
 |
13
|
Angelo Corsaro , Ron K. Cytron, Efficient memory-reference checks for real-time java, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
| |
14
|
|
| |
15
|
Dijkstra, E. W. 1960. Recursive programming. Numer. Math. 2, 312--318.
|
| |
16
|
|
| |
17
|
Fall, A. 1995. Heterogeneous encoding. In Proceedings of International KRUSE'95 Conference: Knowledge Use, Retrieval and Storage for Efficiency, G. Ellis, R. Levinson, A. Fall, and V. Dahl, Eds. Department of Computer Science, University of California, Santa Cruz, Santa Cruz, CA, 162--167.
|
| |
18
|
|
| |
19
|
|
 |
20
|
|
 |
21
|
Peter F. Sweeney , Joseph (Yossi) Gil, Space and time-efficient memory layout for multiple inheritance, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.256-275, November 01-05, 1999, Denver, Colorado, United States
|
| |
22
|
|
| |
23
|
Grafl, R. 1996. ACAO: Ein 64bit JavaVM just-in-time compiler. M.S. thesis, University of Vienna, Vienna, Austria.
|
| |
24
|
Habib, M., Caseau, Y., Nourine, L., and Raynaud, O. 1999. Encoding of multiple-inheritance hierarchies and partial orders. Computat. Intell. 15, 50--62.
|
| |
25
|
|
| |
26
|
|
| |
27
|
Junger, M., Leipert, S., and Mutzel, P. 1996. On computing a maximal planar subgraph using PQ-trees. Tech. rep. Informatik, Universität zu Köln, Cologne, Germany.
|
| |
28
|
Junger, M., Leipert, S., and Mutzel, P. 1998. A note on computing a maximal planar subgraph using PQ-trees. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 17, 7 (Jul.), 609--612.
|
 |
29
|
|
| |
30
|
Krall, A. 2001. Personal communication.
|
| |
31
|
Krall, A. and Grafl, R. 1997. CACAO---a 64 bit JavaVM just-in-time compiler. In PPoPP'97 Workshop on Java for Science and Engineering Computation (Las Vegas, NV), G. C. Fox and W. Li, Eds. ACM Press, New York, NY.
|
| |
32
|
Krall, A., Vitek, J., and Horspool, R. N. 1997. Near optimal hierarchical encoding of types. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP '97, Jyväskylä, Finland). Lecture Notes in Computer Science, vol. 1241. Springer-Verlag, Berlin, Germany, 128--145.
|
| |
33
|
Leipert, S. 1997. PQ-trees, an implementation as template class in C++. Tech. rep. Informatik, Universität zu Köln, Cologne, Germany.
|
| |
34
|
Lempel, A., Even, S., and Cederbaum, I. 1967. An algorithm for planarity testing of graphs. In Theory of Graphs, International Symposium. Gordon and Breach, New York, NY, 215--232.
|
| |
35
|
|
| |
36
|
Palacz, K. and Vitek, J. 2003. Java subtype tests in real-time. In Proceedings of the 17th European Conference on Object-Oriented Programming (ECOOP '03). Lecture Notes in Computer Science. vol. 2743. Springer-Verlag, Darmstadt, Germany.
|
| |
37
|
|
| |
38
|
Schubert, L. K., Papalaskaris, M. A., and Taugher, J. 1983. Determining type, part, color, and time relationships. IEEE Comput (special issue on Knowledge Representation) 16, 10, 53--60.
|
| |
39
|
|
 |
40
|
|
| |
41
|
van Emde Boas, P. 1977. Preserving order in a forest in less than logarithmic time and linear space. Inf. Process. Lett. 6, 3, 80--82.
|
| |
42
|
van Emde Boas, P., Kaas, R., and Zijlstra, E. 1977. Design and implementation of an efficient priority queue. Math. Systems Theory 10, 99--127.
|
 |
43
|
Jan Vitek , R. Nigel Horspool , Andreas Krall, Efficient type inclusion tests, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.142-157, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
44
|
|
REVIEW
"Hans J. Schneider : Reviewer"
In this paper, PQ-trees, used in graph theory to find the orderings that satisfy a collection of constraints, are applied to encode the type hierarchy of object-oriented programs. This leads to efficient subtyping tests. Sections 2 and 3 def
more...
|