Skip to content

tetsuo-cpp/transform

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a reimplementation of the transformation compiler that I wrote as part of my PhD research.  The original was written in Scheme, the one here is written in Go.  A version of the original can be found in the `ps-compiler` directory of Scheme48 (http://s48.org).

The compiler is incomplete.  There is a front end for a subset of Go in the `front` directory but as yet no back end, other than a generic register allocator.  Many of the optimizations in the Scheme version are missing as well.

On the other hand, this Go version uses a simpler CPS node sturcture and, unlike the original, includes a complete conversion to Static Single Assignment form.

Directories:
 cps - The core of the transformational compiler.
 front - A front end for a subset of Go.
 util - Random utilities.
 test - Test application and a small collection of input files.
 doc - My dissertation and a couple of other papers.

The `doc` directory has three papers:

 kelsey-diss-2012.pdf - My dissertation, which Olin Shivers restored from my original, no-longer-working LaTeX sources.

 comp-by-prog-trans.pdf - An overview paper.

 cps-and-ssa.pdf - A paper describing how continuation passing style and static single assigment form are kind of the same thing. This is a replacement for section 6.3 of the dissertation, which was a bit of a hack.
 
  

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%