Not specifically about Haskell, but I read some lecture notes on this topic
yesterday (by Michael Schwartzbach, PDF here:
http://lara.epfl.ch/web2010/_media/sav08:schwartzbach.pdf).  The notes do a
good job of explaining how you set up lattices for various kinds of
analyses, and how calculating fixed points over those lattices can yield
various sorts of interesting information.  Most of the examples are based
on a simple imperative language, but much of the analysis is applicable to
Haskell as well.


On 10 September 2013 13:15, Maarten Faddegon <
haskell-c...@maartenfaddegon.nl> wrote:

> Dear list,
>
> I am interested in learning more about static analysis of Haskell code.
> Specifically of the relation between arguments of recursive and
> non-recursive calls.
>
> For example if we look at the ++ function from Prelude:
>
>         (++) []     ys = ys
>         (++) (x:xs) ys = x : xs ++ ys
>
> amongst others, we could infer the relations:
>
>         ys_i+1     = ys_i
>         (x:xs)_i+1 = xs_i
>
> Searching the web I found several tools (HLint, Haskabelle, Sourcegraph),
> but I am interested in the theory behind this. If you could recommend a
> paper or a book on this topic I would be grateful.
>
> Thanks,
>   Maarten Faddegon
> ______________________________**_________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/**mailman/listinfo/haskell-cafe<http://www.haskell.org/mailman/listinfo/haskell-cafe>
>



-- 
Ian Ross   Tel: +43(0)6804451378   i...@skybluetrades.net
www.skybluetrades.net
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to