transform

module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2025 License: MIT

README

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.
 
  

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL