• Corpus ID: 239009710

Zipping Strategies and Attribute Grammars

  title={Zipping Strategies and Attribute Grammars},
  author={Jos{\'e} Nuno Macedo and Marcos Viera and Jo{\~a}o Saraiva},
Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering. The former, relies on strategies to apply term rewrite rules in defining language transformations, while the latter is suitable to express contextdependent language processing algorithms. Each of these techniques, however, is usually implemented by its own powerful and large language processor system. As a result, it makes such systems harder to extend and to combine. In… 

Figures and Tables from this paper


Embedding attribute grammars and their extensions using functional zippers
Techniques to describe automatic bidirectional transformations between grammars in this setting are described and several real examples of language specification and processing programs have been implemented.
A Pure Object-Oriented Embedding of Attribute Grammars
This paper shows how to remove the need for a generator, by embedding a dynamic approach in a modern, object-oriented programming language to implement a small, lightweight attribute grammar library, using the Scala programming language.
Zipper-Based Attribute Grammars and Their Extensions
This paper defines an elegant and simple, zipper-based embedding of attribute grammars and their extensions as first class citizens for language specification and processing programs.
Strategic tree rewriting in attribute grammars
This paper presents strategy attributes, a seamless integration of strategic term rewriting into attribute grammars that is compatible with other attribute grammar features such as reference attributes, forwarding, and attribute flow analyses for well-definedness.
First-class Attribute Grammars
The semantics of this paper opens the way towards combining the powerful structuring mechanisms for attribute grammars with the flexibility of a general purpose functional programming language.
Silver: An extensible attribute grammar system
Silver is described, an extensible attribute grammar specification system, and it is shown how it can be extended with general purpose features such as pattern matching and domain-specific featuressuch as collection attributes and constructs for supporting data-flow analysis of imperative programs.
Purely Functional Implementation of Attribute Grammars
In Chapter 5, the attribute grammar formalism is extended to provide a modern form of modularity: the AG grammar is separated into components, which are autonomous fragments, i.e., they can be analysed and compiled independently and, consequently, cannot be analysed independently.
Memoized zipper-based attribute grammars and their higher order extension
This work improves their execution performance through controlling attribute (re)evaluation by means of memoization techniques, and presents the results of these optimizations by comparing their impact in various implementations of different, well-studied, attribute grammars and their Higher-Order extensions.
Oberon-0 in Kiama
This work describes how Kiama was used to implement an Oberon-0 compiler as part of the 2011 LDTA Tool Challenge, and explains how Scala enabled a modular approach to the challenge.
TXL - A Language for Programming Language Tools and Applications
  • J. Cordy
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2004
The history, evolution and concepts of TXL are outlined with emphasis on what makes it different from other language manipulation tools, and examples of its use in expressing and applying recent new paradigms in language processing are given.