Pierre-Etienne Moreau

dblp:21/7020 · DBLP profile ↗
← Back
21ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 14 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 11 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2021 Static analysis of pattern-free properties
abstract
Rewriting is a widely established formalism with major applications in computer science. It is indeed a staple of many formal verification applications as it is especially well suited to describe program semantics and transformations. In particular, constructor based term rewriting systems are generally used to illustrate the behaviour of functional programs.
Horatiu Cirstea, Pierre Lermusiaux, Pierre-Etienne Moreau
PPDP3
2020 Pattern Eliminating Transformations
Horatiu Cirstea, Pierre Lermusiaux, Pierre-Etienne Moreau
LOPSTR3
2019 Generic Encodings of Constructor Rewriting Systems
abstract
Rewriting is a formalism widely used in computer science and mathematical logic. The classical formalism has been extended, in the context of functional languages, with an order over the rules and, in the context of rewrite based languages, with the negation over patterns. We propose in this paper a concise and clear algorithm computing the difference over patterns which can be used to define generic encodings of constructor term rewriting systems with negation and order into classical term rewriting systems. As a direct consequence, established methods used for term rewriting systems can be applied to analyze properties of the extended systems. The approach can also be seen as a generic compiler which targets any language providing basic pattern matching primitives. The formalism provides also a new method for deciding if a set of patterns subsumes a given pattern and thus, for checking the presence of useless patterns or the completeness of a set of patterns.
Horatiu Cirstea, Pierre-Etienne Moreau
PPDP2
2017 Faithful (meta-)encodings of programmable strategies into term rewriting systems
abstract
Rewriting is a formalism widely used in computer science and mathematical logic. When using rewriting as a programming or modeling paradigm, the rewrite rules describe the transformations one wants to operate and rewriting strategies are used to con- trol their application. The operational semantics of these strategies are generally accepted and approaches for analyzing the termination of specific strategies have been studied. We propose in this paper a generic encoding of classic control and traversal strategies used in rewrite based languages such as Maude, Stratego and Tom into a plain term rewriting system. The encoding is proven sound and complete and, as a direct consequence, estab- lished termination methods used for term rewriting systems can be applied to analyze the termination of strategy controlled term rewriting systems. We show that the encoding of strategies into term rewriting systems can be easily adapted to handle many-sorted signa- tures and we use a meta-level representation of terms to reduce the size of the encodings. The corresponding implementation in Tom generates term rewriting systems compatible with the syntax of termination tools such as AProVE and TTT2, tools which turned out to be very effective in (dis)proving the termination of the generated term rewriting systems. The approach can also be seen as a generic strategy compiler which can be integrated into languages providing pattern matching primitives; experiments in Tom show that applying our encoding leads to performances comparable to the native Tom strategies.
Horatiu Cirstea, Sergueï Lenglet, Pierre-Etienne Moreau
Log. Methods Comput. Sci.3
2015 A faithful encoding of programmable strategies into term rewriting systems
abstract
Rewriting is a formalism widely used in computer science and mathematical logic. When using rewriting as a programming or modeling paradigm, the rewrite rules describe the transformations one wants to operate and declarative rewriting strategies are used to control their application. The operational semantics of these strategies are generally accepted and approaches for analyzing the termination of specific strategies have been studied. We propose in this paper a generic encoding of classic control and traversal strategies used in rewrite based languages such as Maude, Stratego and Tom into a plain term rewriting system. The encoding is proven sound and complete and, as a direct consequence, established termination methods used for term rewriting systems can be applied to analyze the termination of strategy controlled term rewriting systems. The corresponding implementation in Tom generates term rewriting systems compatible with the syntax of termination tools such as AAProVE and TTT2, tools which turned out to be very effective in (dis)proving the termination of the generated term rewriting systems. The approach can also be seen as a generic strategy compiler which can be integrated into languages providing pattern matching primitives; this has been experimented for Tom and performances comparable to the native Tom strategies have been observed.
Horatiu Cirstea, Sergueï Lenglet, Pierre-Etienne Moreau
RTA3
2014 Effective strategic programming for Java developers
abstract
SUMMARY 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 © 2012 John Wiley & Sons, Ltd.
Emilie Balland, Pierre-Etienne Moreau, Antoine Reilles
Softw. Pract. Exp.2
2012 Island Grammar-Based Parsing Using GLL and Tom
Ali Afroozeh, Jean-Christophe Bach, Mark van den Brand, Adrian Johnstone, Maarten Manders, Pierre-Etienne Moreau, Elizabeth Scott
SLE6
2010 Anti-patterns for rule-based languages
Horatiu Cirstea, Claude Kirchner, Radu Kopetz, Pierre-Etienne Moreau
J. Symb. Comput.4
2008 Software Quality Improvement Via Pattern Matching
Radu Kopetz, Pierre-Etienne Moreau
FASE2
2008 Anti-pattern Matching Modulo
Claude Kirchner, Radu Kopetz, Pierre-Etienne Moreau
LATA3
2008 Term-Graph Rewriting Via Explicit Paths
Emilie Balland, Pierre-Etienne Moreau
RTA2
2007 Anti-pattern Matching
Claude Kirchner, Radu Kopetz, Pierre-Etienne Moreau
ESOP3
2007 Tom: Piggybacking Rewriting on Java
Emilie Balland, Paul Brauner, Radu Kopetz, Pierre-Etienne Moreau, Antoine Reilles
RTA4
2006 A Simple Generic Library for C
Marian Vittek, Peter Borovanský, Pierre-Etienne Moreau
ICSR3
2005 Formal validation of pattern matching code
abstract
When addressing the formal validation of generated software, two main alternatives consist either to prove the correctness of compilers or to directly validate the generated code. Here, we focus on directly proving the correctness of compiled code issued from powerful pattern matching constructions typical of ML like languages or rewrite based languages such as ELAN, Maude or Tom. In this context, our first contribution is to define a general framework for anchoring algebraic pattern-matching capabilities in existing languages like C, Java or ML. Then, using a just enough powerful intermediate language, we formalize the behavior of compiled code and define the correctness of compiled code with respect to pattern-matching behavior. This allows us to prove the equivalence of compiled code correctness with a generic first-order proposition whose proof could be achieved via a proof assistant or an automated theorem prover. We then extend these results to the multi-match situation characteristic of the ML like languages. The whole approach has been implemented on top of the Tom compiler and used to validate the syntactic matching code of the Tom compiler itself.
Claude Kirchner, Pierre-Etienne Moreau, Antoine Reilles
PPDP2
2003 A Pattern Matching Compiler for Multiple Target Languages
Pierre-Etienne Moreau, Christophe Ringeissen, Marian Vittek
CC1
2003 Environments for Term Rewriting Engines for Free!
Mark van den Brand, Pierre-Etienne Moreau, Jurgen J. Vinju
RTA2
2002 ELAN from a rewriting logic point of view
Peter Borovanský, Claude Kirchner, Hélène Kirchner, Pierre-Etienne Moreau
Theor. Comput. Sci.4
2001 Promoting rewriting to a programming language: a compiler for non-deterministic rewrite programs in associative-commutative theories
abstract
First-order languages based on rewrite rules share many features with functional languages, but one difference is that matching and rewriting can be made much more expressive and powerful by incorporating some built-in equational theories. To provide reasonable programming environments, compilation techniques for such languages based on rewriting have to be designed. This is the topic addressed in this paper. The proposed techniques are independent from the rewriting language, and may be useful to build a compiler for any system using rewriting modulo Associative and Commutative (AC) theories. An algorithm for many-to-one AC matching is presented, that works efficiently for a restricted class of patterns. Other patterns are transformed to fit into this class. A refined data structure, namely compact bipartite graph, allows encoding of all matching problems relative to a set of rewrite rules. A few optimisations concerning the construction of the substitution and of the reduced term are described. We also address the problem of non-determinism related to AC rewriting, and show how to handle it through the concept of strategies. We explain how an analysis of the determinism can be performed at compile time, and we illustrate the benefits of this analysis for the performance of the compiled evaluation process. Then we briefly introduce the ELAN system and its compiler, in order to give some experimental results and comparisons with other languages or rewrite engines.
Hélène Kirchner, Pierre-Etienne Moreau
J. Funct. Program.2
2000 REM (Reduce Elan Machine): Core of the New ELAN Compiler
Pierre-Etienne Moreau
RTA1
1995 Prototyping Completion with Constraints Using Computational Systems
Hélène Kirchner, Pierre-Etienne Moreau
RTA2