[<<][rtl][>>][..]
Sat Aug 18 02:13:57 EDT 2018

Clash, Lava

Clash uses a static analysis approach.  ( Implemented as plugin? )
http://hackage.haskell.org/package/clash-prelude-0.99.3/docs/Clash-Tutorial.html

Different from eDSL like the Lava languages.
http://projects.haskell.org/chalmers-lava2000/Doc/tutorial.pdf
http://hackage.haskell.org/package/chalmers-lava2000

I see no monads..
Brings me to sharing.
http://www.ittc.ku.edu/~andygill/talks/20090903-hask.pdf




How do we turn a Lava program into a Graph?

Use a Monad – Xilinx Lava does this.

Tag every binding with a unique tag – Hydra does this.

Automate the introduction of unique tags.
 Destroys referential transparency.
 Chalmers Lava does this.
 Not a big problem in practice.

Use a function that can see certain classes of sharing.
 Like a reflective parser.
 Kansas Lava does this.
 Like Chalmers Lava, can be unsafe.



Data.Reify uses StableNames


Seems like dirty hacks galore..

Stick to Monad.  Less surprises.

Some more on Chalmers Lava:
http://www.cse.chalmers.se/edu/year/2012/course/TDA956/Slides/Lava111.pdf



[Reply][About]
[<<][rtl][>>][..]