I am trying to make my way through the Compilers: Backend to Frontend (and Back to Front Again) by Abdulaziz Ghuloum. This seems to be shortened from what one would expect in a full course / seminar, so I am trying to fill it out myself.
For example, I tried to use its testing structure in the DrScheme R5RS flavor, but it doesn't seem to be like macro material:
src/ghuloum/tests/tests-driver.scm:6:4: read: illegal use of open square bracket
I read his introductory article on the course, An incremental approach to building a compiler , which gives a great overview of the methods used, and mentions a couple of schemes with functions that could be implemented for an "extra loan", but he does not mention the scheme that he uses in course progress.
Update
I am still delving into the original question (exploring options such as the Petit scheme proposed by Eli below), but found an interesting link related to Golum's work, so I include it here.
[Icarus Scheme] ( http://en.wikipedia.org/wiki/Ikarus_(Scheme_implementation)) is the actual implementation of Gulum's ideas and seems to be his Ph.D. work should be one of the first R6RS implementations. I'm trying to install Ikarus now , but the configure script does not want to recognize my system installation of libgmp.so, so my problems are still not resolved.
Example
The following example seems to work in PLT 2.4.2 running in DrEd using Pretty Big
(require lang/plt-pretty-big) (load "/Users/donaldwakefield/ghuloum/tests/tests-driver.scm") (load "/Users/donaldwakefield/ghuloum/tests/tests-1.1-req.scm") (define (emit-program x) (unless (integer? x) (error "---")) (emit " .text") (emit " .globl scheme_entry") (emit " .type scheme_entry, @function") (emit "scheme_entry:") (emit " movl $~s, %eax" x) (emit " ret") )
Attempting to replace the required directive with the #lang schema results in an error message
foo.scm:7:3: expand: unbound identifier in module in: emit
which seems to be due to the inability to load test-driver.scm. Trying to use #lang r6rs disables REPL, which I would really like to use, so I will try to continue working with Pretty Big.
I thank Eli Barzilai for his patient help.