Emilie Balland
French Institute for Research in Computer Science and Automation
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Emilie Balland.
rewriting techniques and applications | 2007
Emilie Balland; Paul Brauner; Radu Kopetz; Pierre-Etienne Moreau; Antoine Reilles
We present the Tom language that extends Java with the purpose of providing high level constructs inspired by the rewriting community. Tom furnishes a bridge between a general purpose language and higher level specifications that use rewriting. This approach was motivated by the promotion of rewriting techniques and their integration in large scale applications. Powerful matching capabilities along with a rich strategy language are among Toms strong points, making it easy to use and competitive with other rule based languages.
IEEE Transactions on Software Engineering | 2012
Damien Cassou; Julien Bruneau; Charles Consel; Emilie Balland
Despite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test the application, and finally deploying it. This paper presents a design language and a tool suite covering the development life-cycle of a pervasive computing application. The design language allows us to define a taxonomy of area-specific building-blocks, abstracting over their heterogeneity. This language also includes a layer to define the architecture of an application, following an architectural pattern commonly used in the pervasive computing domain. Our underlying methodology assigns roles to the stakeholders, providing separation of concerns. Our tool suite includes a compiler that takes design artifacts written in our language as input and generates a programming framework that supports the subsequent development stages, namely, implementation, testing, and deployment. Our methodology has been applied on a wide spectrum of areas. Based on these experiments, we assess our approach through three criteria: expressiveness, usability, and productivity.
Science of Computer Programming | 2014
Benjamin Bertran; Julien Bruneau; Damien Cassou; Nicolas Loriant; Emilie Balland; Charles Consel
We present DiaSuite, a tool suite that uses a software design approach to drive the development process. DiaSuite focuses on a specific domain, namely Sense/Compute/Control (SCC) applications. It comprises a domain-specific design language, a compiler producing a Java programming framework, a 2D-renderer to simulate an application, and a deployment framework. We have validated our tool suite on a variety of concrete applications in areas including telecommunications, building automation, robotics and avionics.
algebraic methodology and software technology | 2006
Emilie Balland; Claude Kirchner; Pierre-Etienne Moreau
Motivated by the proliferation and usefulness of Domain Specific Languages as well as the demand for enriching well established languages by high level capabilities like pattern matching or invariant checking, we introduce the Formal Islands framework. The main idea consists to integrate, in existing programs, formally defined parts called islands, on which proofs and tests can be meaningfully developed. Then, Formal Islands could be safely dissolved into their hosting language to be transparently integrated in the existing development environment. The paper presents this generic framework and shows that the properties valid on the Formal Islands are also valid on the corresponding dissolved host codes. Formal Islands can be used as a general methodology to develop new DSLs and we show that language extensions like SQLJ —embedding SQL capabilities in Java —, or Tom —a Java language extension allowing for pattern matching and rewriting—are indeed islands.
algebraic methodology and software technology | 2008
Emilie Balland; Yohan Boichut; Thomas Genet; Pierre-Etienne Moreau
Term Rewriting Systems (TRSs) are now commonly used as a modeling language for applications. In those rewriting based models, reachability analysis, i.e. proving or disproving that a given term is reachable from a set of input terms, provides an efficient verification technique. Using a tree automata completion technique, it has been shown that the non reachability of a term tcan be verified by computing an over-approximation of the set of reachable terms and proving that tis not in the over-approximation. Since the verification of real programs gives rise to rewrite models of significant size, efficient implementations of completion are essential. We present in this paper a TRS transformation preserving the reachability analysis by tree automata completion. This transformation makes the completion implementation based on rewriting techniques possible. Thus, the reduction of a term to a state by a tree automaton is fully handled by rewriting. This approach has been prototyped in Tom , a language extension which adds rewriting primitives to Java . The first experiments are very promising relative to the state-of-the-art tool Timbuk .
Electronic Notes in Theoretical Computer Science | 2007
Emilie Balland; Pierre-Etienne Moreau; Antoine Reilles
In this paper, we present a term rewriting based library for manipulating Java bytecode. We define a mapping from bytecode programs to algebraic terms, and we use Tom, an extension of Java that adds pattern-matching facilities, to describe transformations. An originality of Tom is that it provides a powerful strategy language to express traversals over trees and to control how transformation rules are applied. To be even more expressive, we use CTL formulae as conditions and we show how their satisfiability can be ensured using the strategy formalism. Through small examples, we show how bytecode analysis and transformations can be defined in an elegant way. In particular, we outline the implementation of a ClassLoader parameterized by a security policy that restricts file access.
conference on computers and accessibility | 2014
Charles Fage; Léonard Pommereau; Charles Consel; Emilie Balland; Hélène Sauzéon
Including children with Autism Spectrum Disorders (ASD) in mainstreamed environments creates a need for new interventions whose efficacy must be assessed in situ. This paper presents a tablet-based application for activity schedules that has been designed following a participatory design approach involving mainstream teachers, special-education teachers and school aides. This applications addresses two domains of activities: classroom routines and verbal communications. We assessed the efficiency of our application with a study involving 10 children with ASD in mainstream inclusion (5 children are equipped and 5 are not equipped). We show that (1) the use of the application is rapidly self-initiated (after two months for almost all the participants) and that (2) the tablet-supported routines are differently executed over time according to the activity domain conditions. Importantly, compared to the control children, the equipped children exhibited more classroom and communication routines correctly performed after three month of intervention.
Electronic Notes in Theoretical Computer Science | 2008
Emilie Balland; Pierre-Etienne Moreau; Antoine Reilles
In any language designed to express transformations, the notion of rewrite rule is a key feature. Its conciseness as well as its strong theoretical foundations are essential. The notion of strategy is complementary: this describes how rules are applied. In this paper, we show how a high-level strategy language can be implemented in a Java setting. We present the integration of the visitor combinator design pattern into Tom. This corresponds to an interpreter for strategy expressions. To be more efficient, we present a compilation method based on bytecode specialization. This low-level transformation is expressed in Tom itself, using rules and strategies.
workshop on rewriting logic and its applications | 2010
Francisco Durán; Manuel Roldán; Jean-Christophe Bach; Emilie Balland; Mark van den Brand; James R. Cordy; Steven Eker; Luc Engelen; Maartje de Jonge; Karl Trygve Kalleberg; Lennart C. L. Kats; Pierre-Etienne Moreau; Eelco Visser
This paper presents the main results and conclusions of the Third Rewrite Engines Competition (REC III). This edition of the competition took place as part of the 8th Workshop on Rewriting Logic and its Applications (WRLA 2010), and the systems ASF+SDF, Maude, Stratego/XT, Tom, and TXL participated in it.
Software - Practice and Experience | 2014
Emilie Balland; Pierre-Etienne Moreau; Antoine Reilles
In object programming languages, the Visitor design pattern allows separation of algorithms and data structures. When applying this pattern to tree‐like structures, programmers are always confronted with the difficulty of making their code evolve. One reason is that the code implementing the algorithm is interwound with the code implementing the traversal inside the visitor. When implementing algorithms such as data analyses or transformations, encoding the traversal directly into the algorithm turns out to be cumbersome as this type of algorithm only focuses on a small part of the data‐structure model (e.g., program optimization). Unfortunately, typed programming languages like Java do not offer simple solutions for expressing generic traversals. Rewrite‐based languages like ELAN or Stratego have introduced the notion of strategies to express both generic traversal and rule application control in a declarative way. Starting from this approach, our goal was to make the notion of strategic programming available in a widely used language such as Java and thus to offer generic traversals in typed Java structures. In this paper, we present the strategy language SL that provides programming support for strategies in Java. Copyright
Collaboration
Dive into the Emilie Balland's collaboration.
French Institute for Research in Computer Science and Automation
View shared research outputsFrench Institute for Research in Computer Science and Automation
View shared research outputs