Which scheme uses Ghuloum?

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.

+7
scheme racket
source share
2 answers

The language he uses is most likely Chez Scheme. Regardless, the R5RS language in PLT is a fairly strict version of R5RS, with extensions such as square brackets throwing errors - and you can increase mileage using the default #lang scheme language. (Or, if that fails, try to see if you can work with Petit - the free version of Chez.)

+3
source share

You can see the installation instructions for here on Ubuntu x86.

Download installation for Petite Scheme here .

+1
source share

All Articles