2010
DOI: 10.1002/spe.1022
|View full text |Cite
|
Sign up to set email alerts
|

Coloring, a versatile technique for implementing object‐oriented languages

Abstract: Late binding and subtyping create run-time overhead for object-oriented languages. Dynamic typing and multiple inheritance create even more overhead. Static typing and single inheritance lead to two major invariants-of reference and position-that make the implementation as efficient as possible. Coloring is a technique that preserves these invariants for dynamic typing or multiple inheritance at minimal spatial cost.Coloring has been introduced and applied, more or less independently, to method invocation-unde… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2010
2010
2018
2018

Publication Types

Select...
4
2
1

Relationship

4
3

Authors

Journals

citations
Cited by 12 publications
(12 citation statements)
references
References 52 publications
0
12
0
Order By: Relevance
“…This section presents the technique that we chose, which is known as coloring, and extends the single subtyping implementation to multiple subtyping [Duc11a].…”
Section: Implementation Techniquementioning
confidence: 99%
“…This section presents the technique that we chose, which is known as coloring, and extends the single subtyping implementation to multiple subtyping [Duc11a].…”
Section: Implementation Techniquementioning
confidence: 99%
“…The previous steps included abstract analysis in Driesen's framework, and simulation of the memory occupation based on large-scale class hierarchies [Ducournau 2006[Ducournau , 2008[Ducournau , 2009. In the past few years, we developed a new language, called PRM, and a compiler with an open modular architecture which makes it relatively easy to test alternative techniques.…”
Section: Languagesmentioning
confidence: 99%
“…It consists of the PRM compiler, which compiles PRM source code to C code and is applied to itself. The tests consider the following techniques: (i) coloring [Ducournau 2006] which represents an extension of the single-subtyping implementation to multiple inheritance under partial CWA; (ii) binary tree dispatch (BTD) ] which requires stronger CWA; (iii) perfect hashing [Ducournau 2008] that has been recently proposed for JAVA interfaces under pure OWA, (iv) incremental coloring [Palacz and Vitek 2003] also proposed for JAVA interfaces, that is an incremental version of coloring which requires load-time recomputations, (v) caching, which amounts to memoizing the last access and might improve less efficient techniques. C++ subobjects are discussed but not tested because they have not yet been integrated in the testbed.…”
Section: Languagesmentioning
confidence: 99%
“…It is used jointly with an intraprocedural control flow analysis. Runtime structures are computed using the coloring technique [Duc11a]. Our coloring implementation takes advantage of the information generated by RTA.…”
Section: Discussionmentioning
confidence: 99%
“…Coloring is an implementation technique for object mechanisms which extends the single subtyping implementation to multiple subtyping. This technique initially proposed by [DMSV89] has been proven to be efficient and well-suited in a global compilation framework [Duc11a]. We use this technique to compute our runtime structures.…”
Section: Optimizationsmentioning
confidence: 99%