Skip to content
This repository has been archived by the owner on Oct 8, 2022. It is now read-only.
/ nanopass-framework Public archive

The new nanopass framework; an embedded DSL for writing compilers in Scheme

License

Notifications You must be signed in to change notification settings

akeep/nanopass-framework

Repository files navigation

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.

About

The new nanopass framework; an embedded DSL for writing compilers in Scheme

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages