VLDB 2026 Research / reviewers in the wild / expert
Floréal Morandat
dblp:11/7473
· DBLP profile ↗
9ranked-venue papers
1as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 1 first-authorSystems, architecture and hardware · 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
3 papers |
Software maintenance and evolution · 54% Programming languages and type systems · 18% Program analysis · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Performance modeling and evaluation · 100% |
Topics — the 11 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › program representation
abstract syntax tree analysis |
0.2 | 1 | 2014 | Fine-grained and accurate source code differencing · ASE 2014 |
Software maintenance and evolution › program differencing
edit script generation |
0.2 | 1 | 2014 | Fine-grained and accurate source code differencing · ASE 2014 |
Software maintenance and evolution
program differencing |
0.2 | 1 | 2014 | Fine-grained and accurate source code differencing · ASE 2014 |
Software maintenance and evolution › refactoring
automated code transformation |
0.1 | 1 | 2012 | Eval begone!: semi-automated removal of eval from javascript programs · OOPSLA 2012 |
Programming languages and type systems › dynamic languages
javascript |
0.1 | 1 | 2012 | Eval begone!: semi-automated removal of eval from javascript programs · OOPSLA 2012 |
Software maintenance and evolution
refactoring |
0.1 | 1 | 2012 | Eval begone!: semi-automated removal of eval from javascript programs · OOPSLA 2012 |
Compilers and program optimization › compiler construction
compilation schemes |
0.1 | 1 | 2009 | Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009 |
Programming languages and type systems
method dispatch |
0.1 | 1 | 2009 | Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009 |
Compilers and program optimization › compiler toolchain
separate compilation |
0.1 | 1 | 2009 | Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009 |
Software maintenance and evolution › software configuration management
version control |
0.1 | 1 | 2014 | Fine-grained and accurate source code differencing · ASE 2014 |
Performance modeling and evaluation
benchmarking |
0.0 | 1 | 2009 | Empirical assessment of object-oriented implementations with multiple inheritance and static typing · OOPSLA 2009 |
Methods — techniques the papers use, named apart from their topics
empirical comparison · 0.2benchmarking · 0.2tree differencing · 0.2static pattern recognition · 0.1corpus analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Raters' reliability in clone benchmarks construction
Alan Charpentier, Jean-Rémy Falleri, Floréal Morandat, Elyas Ben Hadj Yahia, Laurent Réveillère |
Empir. Softw. Eng. | 3 |
| 2014 | Automatic extraction of developer expertiseabstractContext: Expert identification is becoming critical to ease the communication between developers in case of global software development or to better know members of large software communities. To quickly identify who are the experts that will best perform a given development task, both the assignment of skills to developers and the computation of their corresponding expertise level have to be automated. Since the real level of expertise is tedious to assess, our challenge is to identify developers having a significant level of experience with respect to a skill. Method: In this paper we propose XTic, an approach that takes up this challenge with the intent to be accurate and efficient. XTic provides a language to specify skills. It also provides an automatic process that extracts skills and experience levels from source code repositories. Our approach is based on the idea that an expert has a high level of experience with respect to a skill. Results: We have validated XTic both on open source and industrial projects to measure its accuracy and its efficiency. The results we obtained show that its accuracy is between moderate and strong and that it scales well with medium and large size software projects. Conclusion: XTic supports the specification of a diversity of developer skills and the extraction of the expertise of these developers under the form of level of experience. Cédric Teyton, Marc Palyart, Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc 0001 |
EASE | 4 |
| 2014 | Fine-grained and accurate source code differencingabstractAt the heart of software evolution is a sequence of edit actions, called an edit script, made to a source code file. Since software systems are stored version by version, the edit script has to be computed from these versions, which is known as a complex task. Existing approaches usually compute edit scripts at the text granularity with only add line and delete line actions. However, inferring syntactic changes from such an edit script is hard. Since moving code is a frequent action performed when editing code, it should also be taken into account. In this paper, we tackle these issues by introducing an algorithm computing edit scripts at the abstract syntax tree granularity including move actions. Our objective is to compute edit scripts that are short and close to the original developer intent. Our algorithm is implemented in a freely-available and extensible tool that has been intensively validated. Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc 0001, Matias Martinez, Martin Monperrus |
ASE | 2 |
| 2014 | A fast abstract syntax tree interpreter for RabstractDynamic languages have been gaining popularity to the point that their performance is starting to matter. The effort required to develop a production-quality, high-performance runtime is, however, staggering and the expertise required to do so is often out of reach of the community maintaining a particular language. Many domain specific languages remain stuck with naive implementations, as they are easy to write and simple to maintain for domain scientists. In this paper, we try to see how far one can push a naive implementation while remaining portable and not requiring expertise in compilers and runtime systems. We choose the R language, a dynamic language used in statistics, as the target of our experiment and adopt the simplest possible implementation strategy, one based on evaluation of abstract syntax trees. We build our interpreter on top of a Java virtual machine and use only facilities available to all Java programmers. We compare our results to other implementations of R. Tomas Kalibera, Petr Maj, Floréal Morandat, Jan Vitek |
VEE | 3 |
| 2013 | EZ: Towards Efficient Asynchronous Protocol Gateway Construction
Yérom-David Bromberg, Floréal Morandat, Laurent Réveillère, Gaël Thomas 0001 |
DAIS | 2 |
| 2012 | Evaluating the Design of the R Language - Objects and Functions for Data Analysis
Floréal Morandat, Brandon Hill, Leo Osvald, Jan Vitek |
ECOOP | 1 |
| 2012 | Eval begone!: semi-automated removal of eval from javascript programsabstractEval endows JavaScript developers with great power. It allows developers and end-users, by turning text into executable code, to seamlessly extend and customize the behavior of deployed applications as they are running. With great power comes great responsibility, though not in our experience. In previous work we demonstrated through a large corpus study that programmers wield that power in rather irresponsible and arbitrary ways. We showed that most calls to eval fall into a small number of very predictable patterns. We argued that those patterns could easily be recognized by an automated algorithm and that they could almost always be replaced with safer JavaScript idioms. In this paper we set out to validate our claim by designing and implementing a tool, which we call Evalorizer, that can assist programmers in getting rid of their unneeded evals. We use the tool to remove eval from a real-world website and validated our approach over logs taken from the top 100 websites with a success rate over 97% under an open world assumption. Fadi Meawad, Gregor Richards, Floréal Morandat, Jan Vitek |
OOPSLA | 3 |
| 2011 | Perfect class hashing and numbering for object-oriented implementationabstractAbstract 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. | 2 |
| 2009 | Empirical assessment of object-oriented implementations with multiple inheritance and static typingabstractObject-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 |
OOPSLA | 2 |