Normalized rewriting: an alternative to rewriting modulo a set of equations
Journal of Symbolic Computation
Software—Practice & Experience
Visitor combination and traversal control
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Journal of Functional Programming
Formal validation of pattern matching code
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
A system of interaction and structure
ACM Transactions on Computational Logic (TOCL)
The Zephyr abstract syntax description language
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
A pattern matching compiler for multiple target languages
CC'03 Proceedings of the 12th international conference on Compiler construction
ATerms for manipulation and exchange of structured data: It's all about sharing
Information and Software Technology
Term Collections in λ and ρ-calculi
Electronic Notes in Theoretical Computer Science (ENTCS)
Weaving rewrite-based access control policies
Proceedings of the 2007 ACM workshop on Formal methods in security engineering
Electronic Notes in Theoretical Computer Science (ENTCS)
Rewrite Based Specification of Access Control Policies
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
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.