Ask HN: Best compiler/interpreter books for hacking on Scheme?

7 points by iainctduncan ↗ HN
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!

10 comments

[ 2.4 ms ] story [ 41.4 ms ] thread
Why not to download all books from torrents with Scheme or Lisp in name and start to read all but finish one.
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

ah good suggestion. I was planning on looking more closely at impromptu and didn't know about the papers page. thanks!
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.

Thanks! FWIW I'm not new to CS, I'm just coming from an interdisciplinary masters where the principal faculty side was music, while for the PhD those will be flipped. I am, however, new to compilers and interpreters... but I am talking about over the time span of a PhD so this is a multi-year worth of work question. I will be taking courses on compilers but would like to be studying the topic ahead of the course.
Also re the GC thing... the reason I am interested in is that Bill Schottstaedt, the author of s7, was not focusing on soft-realtime in the design of s7. His principal use was in Snd, his non-realtime Scheme based audio editor system. So while s7 is fast, there is (possibly) some low hanging fruit for making it perform better in the soft-realtime context of Max for Live, for example. It could well turn out to be either too hard or a dead end, but hey, that PhDs are for. :-)
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...
That is one I was thinking of working through, but as it's brand new I haven't found much in the way of reviews of it. If anyone has comments on it, I'm all ears....