The new nanopass framework; an embedded DSL for writing compilers in Scheme
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin updated log and docs; built new binary files; removed code that is no… Oct 17, 2013
doc Corrected user-guide to indicate the created predicate will be Apr 1, 2015
lib fixed a bug with unparsing of maybe fields. Dec 9, 2013
nanopass Merge branch 'master' of github.com:akeep/nanopass-framework Apr 1, 2015
tests Updated the copyright year to 2015. Jan 8, 2015
.gitignore
Acknowledgements updated log and docs; built new binary files; removed code that is no… Oct 17, 2013
Copyright Updated the copyright year to 2015. Jan 8, 2015
LOG fixed a bug with unparsing of maybe fields. Dec 9, 2013
ReadMe.md Update ReadMe.md Apr 29, 2016
TODO updated log and docs; built new binary files; removed code that is no… Oct 17, 2013
nanopass.chezscheme.sls Updated the copyright year to 2015. Jan 8, 2015
nanopass.ss Added 'maybe' to the auxiliary keyword list exported by the nanopass Jan 14, 2015
test-all.ss Updated the copyright year to 2015. Jan 8, 2015

ReadMe.md

Nanopass Has Moved

The Nanopass framework for Scheme has moved to its own github group. This one will no longer get updates. You can find the new repo here:

https://github.com/nanopass/nanopass-framework-scheme

There is also a port of this project to Racket, which you can find at:

https://github.com/nanopass/nanopass-framework-racket

Additional information can be found at the nanopass website:

http://nanopass.org

Nanopass Compiler Library

This repositiory contains an R6RS version of the Nanopass Compiler Infrastructure described in [1, 2, 3, 4], along with the beginnings of a test compiler for the library and the rough start to a users guide. The nanopass framework currently supports Chez Scheme, Vicare Scheme, and Ikarus Scheme.

Files

ReadMe.md               -- this readme file
Acknowledgements        -- thanks to those who have supported the work
Copyright               -- copyright information
TODO                    -- the head of the infinite todo list
LOG                     -- change log for the nanopass framework
test-all.ss             -- is a simple wrapper for importing the compiler and 
                           performing a testing run of all of the tests.
nanopass.ss             -- the main interface to the nanopass compiler library
nanopass.chezscheme.sls -- the nanopass compiler library as a Chez Scheme library group
nanopass/               -- contains the parts that nanopass.ss aggregates
tests/                  -- contains a testing compiler along with tests for that
                           compiler and a driver for running the tests
doc/                    -- contains a user guide and developer guide along with a
                           makefile for generating their pdfs with pdflatex
lib/                    -- pre-compiled binaries for use with Petite Chez Scheme
bin/                    -- scripts for managing the pre-compiled binaries

For more information on using the pre-compile binaries, see the README.md file in the lib directory.

References

[1] A. Keep and R. K. Dybvig. A Nanopass Compiler for Commercial Compiler Development. In ICFP ’13: Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, New York, NY, USA, 2013. ACM.

[2] A. Keep. A Nanopass Framework for Commercial Compiler Development. Doctoral dissertation, Indiana University, Bloomington, Indiana, USA, Feb. 2013.

[3] D. Sarkar. Nanopass Compiler Infrastructure. Doctoral dissertation, Indiana University, Bloomington, Indiana, USA, 2008.

[4] D. Sarkar, O. Waddell, and R. K. Dybvig. A nanopass infrastructure for compiler education. In ICFP ’04: Proceedings of the ninth ACM SIGPLAN International Conference on Functional Programming, pages 201–212, New York, NY, USA, 2004. ACM.