Abstract. Forwarding is a technique for providing default attribute definitions in attribute grammars that is helpful in the modular implementation of programming languages. It complements existing techniques such as default copy rules. This paper introduces forwarding, and shows how it is but a small extension of standard higher-order attribute grammars. The usual tools for manipulating higher-order attribute grammars, including the circularity check (which tests for cyclic dependencies between attribute values), carry over without modication. The closure test (which checks that each attribute has a dening equation) needs modi-cation, however, because the resulting higher-order attribute grammars may contain spurious attributes that are never evaluated, and indeed that need not be dened. 1
|
383
|
Semantics of context-free languages
– Knuth
- 1968
|
|
224
|
Definitional interpreters for higher-order programming languages. Higher-Order and Symbolic
– Reynolds
- 1998
|
|
188
|
The Synthesizer Generator: A System for Constructing Language-Based Editors
– Reps, Teitelbaum
- 1988
|
|
97
|
C: A language for high-level, efficient, and machine-independent dynamic code generation
– Engler, Hsieh, et al.
- 1996
|
|
95
|
Haskell 98 - A non-strict, purely functional language. Availableat http://www.haskell.org/onlinereport
– Jones, S
- 1999
|
|
78
|
Attribute grammars as a functional programming paradigm
– JOHNSSON
- 1987
|
|
78
|
Programmable syntax macros
– Weise, Crew
- 1993
|
|
62
|
Modularity and reusability in attribute grammars
– Kastens, Waite
- 1994
|
|
59
|
Higher order attribute grammars
– Swiestra, Vogt
- 1991
|
|
44
|
Attribute coupled grammars
– Ganzinger, Giegerich
- 1984
|
|
42
|
Rewritable reference attributed grammars., in
– Ekman, Hedin
|
|
39
|
Defunctionalization at work
– Danvy, Nielsen
- 2001
|
|
34
|
Extensible syntax with lexical scoping
– Cardelli, Matthes, et al.
- 1994
|
|
30
|
Higher-order functions considered unnecessary for higher-order programming
– Goguen
- 1990
|
|
30
|
An object-oriented notation for attribute grammars
– Hedin
- 1989
|
|
28
|
Composable attribute grammars: Support for modularity in translator design and implementation
– Farrow, Marlowe, et al.
- 1992
|
|
24
|
Modular attribute grammars
– Dueck, Cormack
- 1990
|
|
22
|
Specification and Implementation of Grammar Coupling Using Attribute Grammars
– Bellec, Jourdan, et al.
- 1993
|
|
18
|
Declarative program transformation: a deforestation case-study
– Correnson, Duris, et al.
- 1999
|
|
18
|
Using MetaML: A staged programming language
– Sheard
- 1998
|
|
17
|
Aspect-oriented compilers
– Moor, Peyton-Jones, et al.
- 1999
|
|
17
|
Semantically-Sensitive Macroprocessing
– Maddox
- 1989
|
|
15
|
Higher-Order Attribute Grammars and Editing Environments
– Teitelbaum, Chapman
- 1990
|
|
14
|
Attribute grammars: a declarative functional language. Rapport de Recherche 2662
– Parigot, Duris, et al.
- 1995
|
|
12
|
Higher-order attribute grammars
– Vogt, Swierstra, et al.
- 1990
|
|
11
|
First Class Attribute Grammars
– Moor, Backhouse, et al.
- 2000
|
|
10
|
Defunctionalization of typed programs
– Bell, Hook
- 1994
|
|
7
|
Intentional programming: Innovation in the legacy age. Presented at IFIP Working group 2.1. Available from URL http://www.research. microsoft.com/research/ip
– Simonyi
- 1996
|
|
7
|
Pontrelli P. Jargons for domain engineering
– Nakatani, MA, et al.
- 1999
|
|
6
|
Multiple Attribute Grammar Inheritance
– Mernik, Lenič, et al.
|
|
5
|
c: A language for high-level, ecient, and machine-independent dynamic code generation
– Engler, Hsieh, et al.
- 1996
|
|
4
|
Modular Attribute Grammars for Programming Language Prototyping
– Adams
- 1991
|
|
4
|
Using attribute grammars to derive e#cient functional programs
– Kuiper, Swierstra
- 1987
|
|
2
|
A functional semantics of attribute grammars
– Backhouse
- 2002
|
|
1
|
Hierarchical attribute grammars: Dialects, applications and evaluation algorithms
– Carle
- 1993
|
|
1
|
functional attribute grammars. http://www.cs.uu.nl/ groups/ST/Software/UU AG
– Simple
- 1999
|
|
1
|
Intentional programming: a host of language features
– Wyk, Moor, et al.
- 2001
|
|
1
|
Khepera: A system for rapid prototyping of domain-speci languages
– Faith, Nyland, et al.
- 1997
|