To run the tests, make sure that your compiler file is called "compiler.scm", and that at the top of that file, you have: (load "tests-driver.scm") ; this should come first (load "tests-1.1-req.scm") ; and any other test files you may have. Also, make sure that your compiler defines the function compile-program that takes an expression and uses "emit" to emit the appropriate instructions. The tests-driver defines the procedure "test-all" that will run all the tests provided, get the output, redirect it to a file "stst.s", and invokes gcc on that file as well as the runtime.c file that you should have written. The tests-driver is written for [Petite] Chez Scheme 7. You can obtain a copy of Petite Chez Scheme from: http://www.scheme.com The tests-driver also assumes that you have the GNU C compiler "gcc" already setup and added to your pathname. How you do this depends on your platform. If you have a different C compiler that you wish to use, you can edit the tests-driver yourself (look for the definition of the build procedure). If all is well, then invoking petite on your compiler and typing (test-all) should run all the tests as in the following sample transcript. $ petite compiler.scm Petite Chez Scheme Version 7.0a Copyright (c) 1985-2005 Cadence Research Systems > (test-all) test 0:#f ... ok test 1:#t ... ok test 2:() ... ok test 3:0 ... ok test 4:1 ... ok test 5:-1 ... ok test 6:2736 ... ok test 7:-2736 ... ok test 8:536870911 ... ok test 9:-536870912 ... ok test 10:#\nul ... ok ... test 131:#\y ... ok test 132:#\z ... ok test 133:#\{ ... ok test 134:#\| ... ok test 135:#\} ... ok test 136:#\~ ... ok test 137:#\rubout ... ok passed all 138 tests > Enjoy. Abdulaziz Ghuloum <aghuloum@cs.indiana.edu>
yourushenzhu/compiler-tutorial
Incremental Compiler paper by Abdulaziz Ghuloum, using Chez scheme, Nasm, x86_64 for OSX
Scheme