Skip to content

GunterMueller/Rio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

the Rio Lazy-ML compiler

Rio is, at its heart, a conservation effort. Before the lazy functional programming community settled on Haskell (and nowadays GHC) as the lingua franca for lazy evaluation, there were a several other lazy languages: Miranda, SASL, KRC, and Lazy ML, to name a few.

The implmentation of Rio is based on Augustsson and Johnsson's work on the Chalmers Lazy-ML compiler. We reuse many of the implementation techniques described in that paper, and in Simon L. Peyton Jones' book "Implementing Functional Languages: a tutorial".

Rio is to x86 assembly, using two intermediate languages: a "Core language" that has had abstraction elimination performed (lambda lifting), and an intermediate G-machine for describing graph reduction. Since compilation from the G-machine to x86 is almost trivial, Rio produces very small executables.

About

Rio Lazy ML - A spiritual successor to Chalmers Lazy ML.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published