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)
— 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 multi-methods, is known as(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)
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: multi-threaded, Single-Process(More)