Rémi Forax
University of Marne-la-Vallée
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Rémi Forax.
Computer Science and Information Systems | 2010
Matej Črepinšek; Tomaz Kosar; Marjan Mernik; Julien Cervelle; Rémi Forax; Gilles Roussel
Grammar metrics have been introduced to measure the quality and the complexity of the formal grammars. The aim of this paper is to explore the meaning of these notions and to experiment, on several grammars of domain specific languages and of general-purpose languages, existing grammar metrics together with the new metrics that are based on grammar LR automaton and on the language recognized. We discuss the results of this experiment and focus on the comparison between grammars of domain specific languages as well as of general-purpose languages and on the evolution of the metrics between several versions of the same language.
technology of object oriented languages and systems | 2000
Rémi Forax; Étienne Duris; Gilles Roussel
In Java, method resolution is done at runtime, by late-binding, with respect to the dynamic type of the target object. Some object-oriented languages such as CLOS propose, in addition, late-binding according to dynamic types of arguments. This feature is known as multi-polymorphism and usually achieved by multi-methods. We propose a pure Java framework that provides multi-methods, without extending the base Java language nor modifying its semantics but intensively using the reflection mechanism of the language. The paper focuses on the algorithms and data structures involved in the method resolution strategy we have implemented in an optional package called Java Multi-Method Framework.
principles and practice of programming in java | 2006
Julien Cervelle; Rémi Forax; Gilles Roussel
This paper presents Tatoo, a new parser generator. This tool, written in Java 1.5, produces lexer and bottom-up parsers. Its design has been driven by three main concerns: the ability to use the parser with the non-blocking IO API; the possibility to simply deal with several language versions; a clean separation between the lexer definition, the parser definition and the semantics. Moreover, Tatoo integrates several other interesting features such as lookahead-based rule selection, pluggable error recovery mechanism, multiple character sets optimized support.
acm symposium on applied computing | 2005
Rémi Forax; Étienne Duris; Gilles Roussel
Reflection-based libraries could sometimes be used to extend the expressive power of Java without modifying the language nor the virtual machine. In this paper, we present the advantages of this approach together with general guidelines allowing such implementations to be practicable. Then, we show how these principles have been applied to implement an efficient and general double-dispatch solution for Java.
IEEE Transactions on Software Engineering | 2004
Rémi Forax; Étienne Duris; Gilles Roussel
In Java, method implementations are chosen at runtime by late-binding with respect to the runtime class of just the receiver argument. However, in order to simplify many programming designs, late-binding with respect to the dynamic type of all arguments is sometimes desirable. This behavior, usually provided by multimethods, is known as multipolymorphism. This work presents a new multimethod implementation based on the standard Java reflection mechanism. Provided as a package, it does not require any language extension or any virtual machine modification. The design issues of this reflective implementation are presented together with a new and simple multimethod dispatch algorithm that efficiently supports class loading at runtime. This implementation provides a practicable and fully portable multimethod solution.
component based software engineering | 1999
Rémi Forax; Gilles Roussel
Recursive types definitions and pattern-matching are two useful built-in features of functional languages. There is no such mechanism in the Java language. In this article, we investigate different implementations to support these features in Java. First, we review methods to define recursive types. Then, we expose several approaches allowing to simulate pattern-matching on structures of these types. Finally, we present re-use techniques for algorithms featuring this mechanism.
international parallel and distributed processing symposium | 2006
Gautier Loyauté; Rémi Forax; Gilles Roussel
This paper presents a Java framework based on separation of concerns and code generation concepts that facilitates development of concurrency and I/O in servers. In this approach, the application is modeled by a graph whose vertices correspond to units of treatment connected by channels. It allows to build all kind of servers: multithreaded, single-process event-driven, staged event driven architecture, etc. without modification of the functional part. This architecture also permits to extend very easily an application, adding vertices and edges to the graph. The aim of our development tool is to improve programmer productivity and portability, decreasing development time, and reducing bugs or deadlock problems
2010 Third International Conference on Communication Theory, Reliability, and Quality of Service | 2010
Olivier Curé; Rémi Forax; Pascal Degenne; Danny Lo Seen; Didier Parigot; Ayoub Ait Lahcen
In this work, we consider that the modeling of complex domains can be performed using Domain Specific Languages (DSL). The main principle of this approach consists in developing DSL primitives and to assemble them to model a certain domain. The ability to add new primitives into an existing model and to fine-tune it by replacing some of them provides a flexibility that is highly desirable in simulation intense fields. We have designed such a language, named \textit{Ocelet}, which is tailored for dynamic landscape modeling. We consider that three important components may influence the adoption of this approach: a graphical user interface to build models in an efficient and user-friendly way, a solution to reason, e.g., consistency checking, about model primitives and a tool to facilitate the development of primitives repositories. In this paper, we emphasize that an ontology-based approach is adapted to design all these components. Moreover, a mapping between ontology and Ocelet elements is sufficient for its achievement and supports automatic transformations from one model to the other.
Computer Science and Information Systems | 2007
Julien Cervelle; Rémi Forax; Gilles Roussel
java technologies for real-time and embedded systems | 2014
Gilles Roussel; Rémi Forax; Jerome Pilliet