Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Rémi Forax is active.

Publication


Featured researches published by Rémi Forax.


Computer Science and Information Systems | 2010

On automata and language based grammar metrics

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

Java Multi-Method Framework

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

Tatoo: an innovative parser generator

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

Reflection-based implementation of Java extensions: the double-dispatch use-case

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

A reflective implementation of Java multi-methods

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

Recursive Types and Pattern-Matching in Java

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

Saburo, a tool for I/O and concurrency management in servers

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

Ocelet: An Ontology-Based Domain Specific Language to Model Complex Domains

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

A simple implementation of grammar libraries

Julien Cervelle; Rémi Forax; Gilles Roussel


java technologies for real-time and embedded systems | 2014

Android 292: implementing invokedynamic in Android

Gilles Roussel; Rémi Forax; Jerome Pilliet

Collaboration


Dive into the Rémi Forax's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Julien Cervelle

University of Marne-la-Vallée

View shared research outputs
Top Co-Authors

Avatar

Jerome Pilliet

University of Marne-la-Vallée

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Étienne Duris

University of Marne-la-Vallée

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge