2016
DOI: 10.1016/j.scico.2016.03.005
|View full text |Cite
|
Sign up to set email alerts
|

Embedding attribute grammars and their extensions using functional zippers

Abstract: Attribute grammars are a suitable formalism to express complex software language analysis and manipulation algorithms, which rely on multiple traversals of the underlying syntax tree. Attribute grammars have been extended with mechanisms such as reference, higher-order and circular attributes. Such extensions provide a powerful modular mechanism and allow the specification of complex computations. This paper studies an elegant and simple, zipper-based embedding of attribute grammars and their extensions as fir… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
14
0

Year Published

2016
2016
2024
2024

Publication Types

Select...
4
2
1

Relationship

3
4

Authors

Journals

citations
Cited by 11 publications
(14 citation statements)
references
References 49 publications
0
14
0
Order By: Relevance
“…HOAGs are supported by our zipper-based embedding as shown in [26,27]. Next, we show a simple Let-In language whose scope rules exactly follow the Algol 68 AG.…”
Section: Memoized Higher-order Agsmentioning
confidence: 99%
See 1 more Smart Citation
“…HOAGs are supported by our zipper-based embedding as shown in [26,27]. Next, we show a simple Let-In language whose scope rules exactly follow the Algol 68 AG.…”
Section: Memoized Higher-order Agsmentioning
confidence: 99%
“…In this paper we focus on the embedding of AGs in Haskell proposed in [26], which we revise in Section 2. This embedding ensures a notation that closely resembles AGs, and even though it relies on a simple navigation engine, it has shown sufficient expressive power to incorporate state-of-the-art extensions to the AG formalism such as the possibility of not only defining classical (first-order) attribute grammars but also Higher-Order Attribute Grammars (HOAGs) [36,26,27]. This elegant AG embedding, however, has a severe performance problem: it does not ensure that attributes are computed only once on a given node.…”
Section: Introductionmentioning
confidence: 99%
“…In particular, should the code then fail statically or dynamically? Zipper functions [52], [53] act like HASKELL by statically reporting such errors so long as they can be caught iteratively [54].…”
Section: Related Work A) Lisamentioning
confidence: 99%
“…In this paper we focus on the embedding proposed in [15] for Haskell, which we revise in Section 2. This choice is motivated by the fact that this embedding ensures a notation that closely resembles AGs , and even if it relies on a simple navigation engine, it has shown sufficient expressive power to incorporate stateof-the-art extensions to the AG formalism such as the possibility of defining: i) higher-order attributes [20,26], ii) references [14], iii) circular attributes [15,21], and iv) bidirectional transformations [16].…”
Section: Introductionmentioning
confidence: 99%