ku-fpg/sunroof-compiler

Monadic Javascript Compiler

Haskell

74

401 commits

updated May 21, 2016

See the code

README

Sunroof Hackage version Build Status

Sunroof is a Haskell-hosted Domain Specific Language (DSL) for generating JavaScript. Sunroof is built on top of the JS-monad, which, like the Haskell IO-monad, allows access to external resources, but specifically JavaScript resources. As such, Sunroof is primarily a feature-rich foreign function API to the browser's JavaScript engine, and all the browser-specific functionality, including HTML-based rendering, event handling, and drawing to the HTML5 canvas.

It uses monadic reification, to reify a deep embedding of the JS-monad, and from this embedding it generates JavaScript. The Sunroof DSL has the feel of native Haskell, with a simple Haskell-based type schema to guide the Sunroof programmer. Furthermore, because it generates code, Sunroof can offer Haskell-style concurrency patterns, like MVars and Channels. In combination with a web services package like kansas-comet, the Sunroof compiler offers a robust platform to build interactive web applications, giving the ability to interleave Haskell and JavaScript computations with each other as needed (sunroof-server).

Further Information

Further information on Sunroof can be found in different places:

Contributors

andygill

396 commits

RyanGlScott

2 commits

Taneb

2 commits

ggreif

1 commits

ku-fpg/sunroof-compiler

Monadic Javascript Compiler

Haskell

74

401 commits

updated May 21, 2016

See the code

README

Sunroof Hackage version Build Status

Sunroof is a Haskell-hosted Domain Specific Language (DSL) for generating JavaScript. Sunroof is built on top of the JS-monad, which, like the Haskell IO-monad, allows access to external resources, but specifically JavaScript resources. As such, Sunroof is primarily a feature-rich foreign function API to the browser's JavaScript engine, and all the browser-specific functionality, including HTML-based rendering, event handling, and drawing to the HTML5 canvas.

It uses monadic reification, to reify a deep embedding of the JS-monad, and from this embedding it generates JavaScript. The Sunroof DSL has the feel of native Haskell, with a simple Haskell-based type schema to guide the Sunroof programmer. Furthermore, because it generates code, Sunroof can offer Haskell-style concurrency patterns, like MVars and Channels. In combination with a web services package like kansas-comet, the Sunroof compiler offers a robust platform to build interactive web applications, giving the ability to interleave Haskell and JavaScript computations with each other as needed (sunroof-server).

Further Information

Further information on Sunroof can be found in different places:

Contributors

andygill

396 commits

RyanGlScott

2 commits

Taneb

2 commits

ggreif

1 commits

Languages

Haskell

100.0%