Rémi Forax

Learn More
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(More)
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(More)
This paper presents an extension of the Tatoo compiler compiler that supports separate compilation and dynamic linking of formal grammars. It allows the developer to define reusable libraries of grammars such as those of arithmetic expressions or of classical control operators. The aim of this feature is to simplify the development of domain specific(More)
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 new metrics based on grammar LR automaton and on(More)
Article history: Available online xxx Keywords: Ocelet DSL Multi-scale Spatial and temporal modelling SOA a b s t r a c t The modelling of processes that occur in landscapes is often confronted to issues related to the representation of space and the difficulty of properly handling time and multiple scales. In order to investigate these issues, a flexible(More)
Android OS uses for its applicative part a Java-based virtual machine called Dalvik. Java 7 introduces a new instructions set as well as a new API specified by the JSR 292 [11] in order to improve and simplify the implementation of non-Java languages on top of the Java Virtual Machine. As far as we know, neither the JVMs that are compatible with Java ME 8(More)
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.(More)