<p>In the process of creating an AST analysis framework one of the challenges is creating good reusable functions and to avoid too much boiler-plate code. To that end catamorphisms seem like a good fit, as described here:</p>

<p><a href="http://lorgonblog.wordpress.com/2008/04/05/catamorphisms-part-one/" rel="nofollow">Catamorphisms (1-7)</a></p>

<p>Is there other interesting recursion schemes and techniques that are beneficial for AST analysis like catamorphisms?</p>

<p>In particular with application within the constraints of the F# programming language.</p>

CC BY-SA 3.0
2012-02-25T16:13:02.170Z
Paramorphisms, hylomorphisms, anamorphisms, .... Also look at some of the work by Ralf Lämmel on "Scrap your boilerplate".
Dave Clarke
CC BY-SA 3.0
2012-02-26T02:38:29.867Z
Maybe the acronym AST is clear from context to experts. What does it mean here? (I would assume Abstract Syntax Tree). The paper "Parsing with Derivatives" might interest you.
Vijay D
CC BY-SA 3.0
2012-02-26T09:46:25.953Z
Thanks for the pointers. Yes, AST means what you think it means.
Bent Rasmussen
<pl.programming-languages><recursion><se.software-engineering>
Recursion Schemes for Static Analysis (AST)
Bent Rasmussen
# Recursion Schemes for Static Analysis (AST)

(Asked by: username_0 on 2012-02-25)

In the process of creating an AST analysis framework one of the challenges is creating good reusable functions and to avoid too much boiler-plate code. To that end catamorphisms seem like a good fit, as described here:

[Catamorphisms (1-7)](http://lorgonblog.wordpress.com/2008/04/05/catamorphisms-part-one/)

Is there other interesting recursion schemes and techniques that are beneficial for AST analysis like catamorphisms?

In particular with application within the constraints of the F# programming language.

**Tags:** pl.programming-languages, recursion, se.software-engineering
> **Comments:**
> **username_1**: Paramorphisms, hylomorphisms, anamorphisms, .... Also look at some of the work by Ralf Lämmel on "Scrap your boilerplate".  
> **username_2**: Maybe the acronym AST is clear from context to experts. What does it mean here? (I would assume Abstract Syntax Tree). The paper "Parsing with Derivatives" might interest you.  
> **username_0**: Thanks for the pointers. Yes, AST means what you think it means.  

---

## 0 answers

