HACKER Q&A
📣 iainctduncan

Best compiler/interpreter books for hacking on Scheme?


Hello, I'm starting an interdisciplinary PhD in the fall between computer science and music to continue working on Scheme for Max, my open source project that puts a Scheme interpreter in the Max/MSP audio-visual low-code platform. I want to learn enough to work on improving the GC and (soft) real-time capabilities of s7 Scheme, which is written in C and originally came out of the Tiny Scheme code base. There are a lot of books that get recommended here on compilers and interpreters! I'm hoping to get recommendations for my particular use case, and for someone like me who is brand new to the field. (My Masters was on the music side, so lots of catch up to do on comp sci)

thanks!


  👤 Doctor-R Accepted Answer ✓
The wikipedia article on Garbage Collection (software) is one place to start: https://en.wikipedia.org/wiki/Garbage_collection_(computer_s...

Here is a list of garbage collection papers (newest is 2002) https://sites.cs.ucsb.edu/~ckrintz/racelab/gc/papers/

Here is an old paper (1994?) that surveys different kinds of software Garbage Collection. https://www.cs.cmu.edu/~fp/courses/15411-f08/misc/wilson94-g...

I am concerned that you are new to CS and you want to 'improve' a working system's garbage collection code. But good luck anyway. Finding a new fast GC is like searching for the Holy Grail.


👤 Rochus
> I want to learn enough to work on improving the GC and (soft) real-time capabilities of s7 Scheme

The first thing you should look at is MPS (see https://github.com/Ravenbrook/mps and https://www.ravenbrook.com/project/mps/). It's open source, professionally maintained and very powerful, and it was used e.g. in Dylan and LispWorks.


👤 sn9
Not sure if this is precisely what you were looking for, but you can check the table of contents of this recent book on writing compilers in Racket: https://mitpress.mit.edu/9780262047760/essentials-of-compila...

👤 i_don_t_know
Andrew Sorensen used Tiny Scheme as the programming language for his Impromptu app on the Mac a long time ago:

https://en.m.wikipedia.org/wiki/Impromptu_(programming_envir...

There’s lots of good stuff on the project’s website but the papers section might be of particular interest:

http://impromptu.moso.com.au/downloads.html


👤 eimrine
Why not to download all books from torrents with Scheme or Lisp in name and start to read all but finish one.