Canonical Abstract Syntax Trees

This paper presents GOM, a language for describing abstract syntax trees and generating a Java implementation for those trees. GOM includes features allowing the user to specify and modify the interface of the data structure. These features provide in particular the capability to maintain the internal representation of data in canonical form with respect to a rewrite system. This explicitly guarantees that the client program only manipulates normal forms for this rewrite system, a feature which is only implicitly used in many implementations.

[1]  Hayco de Jong,et al.  Generation of abstract programming interfaces from syntax definitions , 2004, J. Log. Algebraic Methods Program..

[2]  Claude Kirchner,et al.  Formal validation of pattern matching code , 2005, Trustworthy Software.

[3]  Pierre-Etienne Moreau,et al.  Implementing Deep Inference in Tom , 2005 .

[4]  Pierre-Etienne Moreau,et al.  Generator of efficient strongly typed abstract syntax trees in Java , 2005, IEE Proc. Softw..

[5]  P. Klint,et al.  Efficient annotated terms , 2000 .

[6]  Claude Marché,et al.  Normalized Rewriting: An Alternative to Rewriting Modulo a Set of Equations , 1996, J. Symb. Comput..

[7]  Alessio Guglielmi,et al.  A system of interaction and structure , 1999, TOCL.

[8]  Val Goranko,et al.  12th EUROPEAN SUMMER SCHOOL IN LOGIC, LANGUAGE AND INFORMATION , 2000 .

[9]  Christophe Ringeissen,et al.  A Pattern Matching Compiler for Multiple Target Languages , 2003, CC.

[10]  Ozan Kahramano Gullari,et al.  Implementing system BV of the calculus of structures in Maude , 2004 .

[11]  Andrew W. Appel,et al.  The Zephyr Abstract Syntax Description Language , 1997, DSL.

[12]  Ozan Kahramanoù Implementing System BV of the Calculus of Structures in Maude , 2004 .

[13]  Joost Visser Visitor combination and traversal control , 2001, OOPSLA '01.

[14]  Hélène Kirchner,et al.  Under Consideration for Publication in J. Functional Programming Promoting Rewriting to a Programming Language: a Compiler for Non-deterministic Rewrite Programs in Associative-commutative Theories , 2022 .

[15]  Paul Klint,et al.  Compiling language definitions: the ASF+SDF compiler , 2000, TOPL.