[Haskell] Paper: The essence of dataflow programming
Tarmo Uustalu
tarmo at cs.ioc.ee
Mon Sep 26 08:44:57 EDT 2005
Dear Dave,
Thanks for the nice propaganda!
A few comments regarding the points you made in your message.
Ineffeciency of fibo-like programs: Your observations are true. But this is a
comonadic interpreter analogous to the cbv monadic interpreter. One can also
define an analogue to the cbn monadic interpreter. This is better than the
"cbv" version on the n first Fibonacci numbers but worse on the nth number
alone...
Zippers: Yes, of course! Streams are an infinite linear datastructure, but you
can also do trees (eg decorated parse trees of a CFG). Such trees with a
distinguished position are of course the zipper datatype and this is a comonad
as well. And similarly to the comonadic approach to the semantics of dataflow
languages one can give a comonadic structure eg to attribute grammar
specifications (either purely synthesized attribute grammars or general
attribute grammars). We've developed these ideas in a paper that was presented
at TFP, see
http://www.cs.ioc.ee/~tarmo/papers/tfp05.pdf
(this is the symposium version, the full version is in preparation.)
To present the comonadic semantics of attribute grammar specifications neatly,
one needs either GADTs or dependent types.
Best wishes,
Tarmo U
More information about the Haskell
mailing list