Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Roland Ducournau

dblp:09/4308 · DBLP profile ↗
← Back
12ranked-venue papers
8as first author
0since 2021 · last 2012
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 8 first-authorArtificial intelligence and machine learning · 1Human-computer interaction and ubiquitous computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Programming languages and type systems · 58% Compilers and program optimization · 38% Requirements engineering and software design · 4%
Artificial intelligence
2 papers
Knowledge representation and reasoning · 50% Information extraction and text analysis · 25% 3D vision · 25%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Performance modeling and evaluation · 100%

Topics — the 12 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems
method dispatch
0.222009
Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009
Perfect hashing as an almost perfect subtype test · ACM Trans. Program. Lang. Syst. 2008
Compilers and program optimization › compiler construction
compilation schemes
0.112009
Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009
Compilers and program optimization › compiler toolchain
separate compilation
0.112009
Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009
Performance modeling and evaluation
benchmarking
0.012009
Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009
Requirements engineering and software design › inconsistency management
conflict resolution
0.021994
Proposal for a Monotonic Multiple Inheritance Linearization · OOPSLA 1994
Monotonic Conflict Resolution Mechanisms for Inheritance · OOPSLA 1992
Programming languages and type systems › object-oriented programming
multiple inheritance
0.021994
Proposal for a Monotonic Multiple Inheritance Linearization · OOPSLA 1994
Monotonic Conflict Resolution Mechanisms for Inheritance · OOPSLA 1992
Natural language and speech › Information extraction and text analysis
ambiguity resolution
0.011994
On Stein's Paper: Resolving Ambiguity in Nonmonotonic Inheritance Hierarchies · Artif. Intell. 1994
Knowledge, reasoning and agents › Knowledge representation and reasoning › ontology › concept hierarchy
inheritance hierarchies
0.011994
On Stein's Paper: Resolving Ambiguity in Nonmonotonic Inheritance Hierarchies · Artif. Intell. 1994
Knowledge, reasoning and agents › Knowledge representation and reasoning
nonmonotonic reasoning
0.011994
On Stein's Paper: Resolving Ambiguity in Nonmonotonic Inheritance Hierarchies · Artif. Intell. 1994
Computer vision › 3D vision
object representation
0.011994
An object-based representation system for organic synthesis planning · Int. J. Hum. Comput. Stud. 1994
Programming languages and type systems
object-oriented programming
0.021994
Proposal for a Monotonic Multiple Inheritance Linearization · OOPSLA 1994
Monotonic Conflict Resolution Mechanisms for Inheritance · OOPSLA 1992
Bioinformatics and computational biology › molecular informatics
cheminformatics
0.011994
An object-based representation system for organic synthesis planning · Int. J. Hum. Comput. Stud. 1994

Methods — techniques the papers use, named apart from their topics

empirical comparison · 0.2benchmarking · 0.2perfect hashing · 0.1cohen's display · 0.1linearization algorithms · 0.0
YearPublicationVenuePosition
2012 Lightweight generics in embedded systems through static analysis
abstract
Low-end embedded systems are still programmed in C and assembly, and adopting high-level languages such as C# should reduce the length of their development cycles. For these systems, code size is a major concern, but run-time efficiency should also be reasonable --- programmers will not migrate to C# unless the overhead compared with C is insignificant. In this paper, we propose a static approach based on whole program optimization for implementing .Net generics in such systems. Indeed, the implementation of run-time generics involves a tradeoff between size and run-time efficiency. In this proposal, generic instances are detected through a generalization of RTA to parametric polymorphism. Also, we propose an implementation scheme which employs code sharing and more effective coercions than boxing. Unlike existing implementation schemes, it is scalable in the number of generic instances without involving boxing and unboxing in a systematic way.
Olivier Sallenave, Roland Ducournau
LCTES2
2011 Metamodeling semantics of multiple inheritance
Roland Ducournau, Jean Privat
Sci. Comput. Program.1
2011 Coloring, a versatile technique for implementing object-oriented languages
abstract
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 independently proposed for method invocation under the name ofselector coloring, for subtype tests under the name ofpack encoding, and for attribute access and object layout. This paper reviews a number of uses of coloring for optimizing object‐oriented programming, generalizes them, and specifies several variations, such as bidirectional andn‐directional coloring. Coloring is NP‐hard, hence compilers that use it depend on heuristics. The paper describes two families of heuristics and presents some experimental results which indicate that coloring is both efficient and tractable and that bidirectional coloring gives the best results. Copyright © 2010 John Wiley & Sons, Ltd.
Roland Ducournau
Softw. Pract. Exp.1
2011 Perfect class hashing and numbering for object-oriented implementation
abstract
Abstract Late binding and subtyping create run‐time overhead for object‐oriented languages, especially in the context of both multiple inheritance and dynamic loading, for instance for JAVA interfaces. In a previous article, we proposed a novel approach based on perfect hashing and truly constant‐time hashtables for implementing subtype testing and method invocation in a dynamic loading setting. In this first study, we based our efficiency assessment on Driesen's abstract computational model for the time aspect, and on large‐scale benchmarks for the space aspect. The conclusions were that the technique was promising but required further research in order to assess its scalability. This article presents some new results on perfect class hashing that enhance its interest. We propose and test both new hashing functions and an inverse problem that amounts to selecting the best class identifiers in order to minimize the overall hashtable size. This optimizing approach is proven to be optimal for single‐inheritance hierarchies. Experiments within an extended testbed with random class loading and under cautious assumptions about what should be a sensible class‐loading order show that perfect class hashing scales up gracefully, especially on JAVA‐like multiple‐subtyping hierarchies. Furthermore, perfect class hashing is implemented in the PRM compiler testbed, and compared here with the coloring technique, which amounts to maintaining the single‐inheritance implementation in multiple inheritance. The overall conclusion is that the approach is efficient from both time and space standpoints with the bit‐wise and hashing function. In contrast, the poor time efficiency of modulus hashing function on most processors is confirmed. Copyright © 2010 John Wiley & Sons, Ltd.
Roland Ducournau, Floréal Morandat
Softw. Pract. Exp.1
2009 Empirical assessment of object-oriented implementations with multiple inheritance and static typing
abstract
Object-oriented languages involve a threefold tradeoff between runtime efficiency, expressiveness (multiple inheritance), and modularity, i.e. open-world assumption (OWA). Runtime efficiency is conditioned by both the implementation technique and compilation scheme. The former specifies the data structures that support method invocation, attribute access and subtype testing. The latter consists of the production line of an executable from the source code. Many implementation techniques have been proposed and several compilation schemes can be considered from fully global compilation under the closed-world assumption (CWA) to separate compilation with dynamic loading under the OWA, with midway solutions. This article reviews a significant subset of possible combinations and presents a systematic, empirical comparison of their respective efficiencies with all other things being equal. The testbed consists of the Prm compiler that has been designed for this purpose. The considered techniques include C++ subobjects, coloring, perfect hashing, binary tree dispatch and caching. A variety of processors were considered. Qualitatively, these first results confirm the intuitive or theoretical abstract assessments of the tested approaches. As expected, efficiency increases as CWA strengthens. From a quantitative standpoint, the results are the first to precisely compare the efficiency of techniques that are closely associated with specific languages like C++ and Eiffel. They also confirm that perfect hashing should be considered for implementing Java and .Net interfaces.
Roland Ducournau, Floréal Morandat, Jean Privat
OOPSLA1
2008 Perfect hashing as an almost perfect subtype test
abstract
Subtype tests are an important issue in the implementation of object-oriented programming languages. Many techniques have been proposed, but none of them perfectly fulfills the five requirements that we have identified: constant-time, linear-space, multiple inheritance, dynamic loading and inlining. In this article, we propose a subtyping test implementation that involves a combination of usual hashtables and Cohen's display, which is a well-known technique for single inheritance hierarchies. This novel approach is based on perfect hashing , that is, an optimized and truly constant-time variant of hashing that applies to immutable hashtables. We show that the resulting technique closely meets all five requirements. Furthermore, in the framework of Java-like languages—characterized by single inheritance of classes and multiple subtyping of interfaces—perfect hashing also applies to method invocation when the receiver is typed by an interface. The proposed technique is compared to some alternatives, including the proposal by Palacz and Vitek [2003]. Time-efficiency is assessed at the cycle level in the framework of Driesen's pseudo-code and the linear-space criterion is validated by statistical simulation on benchmarks consisting of large-scale class hierarchies.
Roland Ducournau
ACM Trans. Program. Lang. Syst.1
2005 Link-time static analysis for efficient separate compilation of object-oriented languages
abstract
Compilers used in industry are mainly based on a separate compilation framework. However, the knowledge of the whole program improves efficiency of object-oriented language compilers, therefore more efficient implementation techniques are based on a global compilation framework.In this paper, we propose a compromise by including three global compilation techniques (type analysis, coloring and binary tree dispatching) in a separate compilation framework. Files are independently compiled into standard binary files with unresolved symbols. The program is build by linking object files: files are gathered and analyzed, some link code is generated then symbols are resolved.
Jean Privat, Roland Ducournau
PASTE2
1994 Proposal for a Monotonic Multiple Inheritance Linearization
abstract
Previous studies concerning multiple inheritance convinced us that a better analysis of conflict resolution mechanisms was necessary. In [DHHM92], we stated properties that a sound mechanism has to respect. Among them, a monotonicity principle plays a critical role, ensuring that the inheritance mechanism behaves “naturally” relative to the incremental design of the inheritance hierarchy. We focus here on linearizations and present an intrinsically monotonic linearization, whereas currently used linearizations are not. This paper describes the algorithm in detail, explains the design choices, and compares it to other linearizations, with LOOPS and CLOS taken as references. In particular, this new linearization extends CLOS and LOOPS linearizations, producing the same results when these linearizations are sound.
Roland Ducournau, Michel Habib, Marianne Huchard, Marie-Laure Mugnier
OOPSLA1
1994 On Stein's Paper: Resolving Ambiguity in Nonmonotonic Inheritance Hierarchies
Geneviève Simonet, Roland Ducournau
Artif. Intell.2
1994 An object-based representation system for organic synthesis planning
Amedeo Napoli, Claude Laurenço, Roland Ducournau
Int. J. Hum. Comput. Stud.3
1992 Monotonic Conflict Resolution Mechanisms for Inheritance
abstract
The main topic of this paper is multiple inheritance and conflict resolution methods in Object Oriented Programming. Our aim is to develop sound mechanisms easily understandable to any user. For this purpose, coherent behaviors of conflict resolution methods for multiple inheritance (such as supporting incrementality-monotonicity and stability under link subdivision) are introduced. We present interesting examples in which multiple inheritance known linearization algorithms (such as in CLOS [2] and LOOPS [19]) behave badly. Then we carefully study the conditions (on the inheritance graph) which assure good linearizations. We end with some suggestions for an incremental inheritance algorithm.
Roland Ducournau, Michel Habib, Marianne Huchard, Marie-Laure Mugnier
OOPSLA1
1987 On Some Algorithms for Multiple Inheritance in Object-Oriented Programming
Roland Ducournau, Michel Habib
ECOOP1