Personal tools

Attribute grammar

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (/*Related concepts/* More precise location of a link)
(Having moved description of Swiestra's ``Why Attribute Grammars Matter'' article from Circular programming to here)
Line 5: Line 5:
 
Especially for functional programmers (with Haskell examples) -- see
 
Especially for functional programmers (with Haskell examples) -- see
 
Wouter Swierstra: [http://www.haskell.org/tmrwiki/WhyAttributeGrammarsMatter Why Attribute Grammars Matter] (published in [http://www.haskell.org/tmrwiki/IssueFour The Monad.Reader, Issue Four]).
 
Wouter Swierstra: [http://www.haskell.org/tmrwiki/WhyAttributeGrammarsMatter Why Attribute Grammars Matter] (published in [http://www.haskell.org/tmrwiki/IssueFour The Monad.Reader, Issue Four]).
  +
And also very deep connections with
  +
* catamorhisms, category theory
  +
* attribute grammars
  +
are described there.
  +
And there are links from that article to other materials providing deep insights in these powerful theories: attribute grammar tools and articles of the Essential Haskell Compiler project.
  +
  +
It is no wonder that it is exactly a compiler project homepage that provides good circular programming and attribute grammar tutorials
  +
* both on its [http://www.cs.uu.nl/wiki/Ehc/WebHome project page]
  +
* and on a separate [http://www.cs.uu.nl/wiki/HUT/AttributeGrammarSystem attribute grammar] page:
  +
the reason may be that a compiler project is complex enough to require good separation of concerns, modularity, reuse (goals of Aspect Oriented Programming, too), and attribute grammars are powerful tools to achieve these goals.
   
 
[http://en.wikipedia.org/wiki/Attribute_grammar Wikipedia article]
 
[http://en.wikipedia.org/wiki/Attribute_grammar Wikipedia article]

Revision as of 12:27, 11 June 2006

Contents


1 Introduction

Especially for functional programmers (with Haskell examples) -- see Wouter Swierstra: Why Attribute Grammars Matter (published in The Monad.Reader, Issue Four). And also very deep connections with

  • catamorhisms, category theory
  • attribute grammars

are described there. And there are links from that article to other materials providing deep insights in these powerful theories: attribute grammar tools and articles of the Essential Haskell Compiler project.

It is no wonder that it is exactly a compiler project homepage that provides good circular programming and attribute grammar tutorials

the reason may be that a compiler project is complex enough to require good separation of concerns, modularity, reuse (goals of Aspect Oriented Programming, too), and attribute grammars are powerful tools to achieve these goals.

Wikipedia article

2 Portals or other rich resources

Attribute Grammars Home Page

3 Tools

Utrecht University's Attribute Grammar System tools include also an attribute grammar compiler, UUAGC. The concept of attribute grammar was used in their Essential Haskell Compiler project, which gives us not only a working programming language, but also a good didactical material about using attribute grammars, e.g. in writing compilers.

Albeits these materials are self-contained, they reveal that the theory of attribute grammars is related to other concepts (circular programming, catamorphism).

4 Related concepts