4 ms·
Rabbit Scheme Compiler
- Zambyte 3y agoHere is the report that defined Rabbit: https://dspace.mit.edu/bitstream/handle/1721.1/6913/AITR-474.pdf https://dspace.mit.edu/bitstream/handle/1721.1/6913/AITR-474...
- abecedarius 3y agoGuy Steele's master's thesis explains the ideas, and includes this code as an appendix with extra comments on the facing pages (from page 117): https://dspace.mit.edu/bitstream/handle/1721.1/6913/AITR-474.pdf https://dspace.mit.edu/bitstream/handle/1721.1/6913/AITR-474... I also added extra comments (my own notes as I figured things out) in a copy up on my old website (with permission) -- I didn't know about the above appendix at the time. I'm not sure if it'd add anything to the above, but I could dig it up. Related work at https://en.wikisource.org/wiki/Lambda_Papers https://en.wikisource.org/wiki/Lambda_Papers
- soegaard 3y agoIn case anyone is wondering about the name Rabbit. It's an old pun in the Scheme world to make Scheme compilers have a name that ends in "bit". I know at least three: - Orbit - Rabbit - Gambit
- EdwardCoffin 3y agoI understood it was wordplay from lapin, the French word for rabbit. The way I remember it is it was a program that took an input of Lisp Assembly Programs (LAP-in). I can't find a source for this, so I may be misremembering parts of it, particularly the expansion of the acronym.
- abecedarius 3y agoRabbit was the first. I read somewhere that this was a kind of pun on the MacLisp LAPIN function. LAPIN assembled LAP code, Lisp Assembly Program (the penultimate stage of compilation), and 'lapin' is French for rabbit.
- xscott 3y agoMaybe you'd include Twobit in that list: http://larcenists.org/twobit.html http://larcenists.org/twobit.html
- soegaard 3y agoI had forgotten aboout "TwoBit". The name Larceny is a pun too btw.
- allenrb 3y agoI confess to hoping this was a compiler for rabbit schemes, but no such luck. Those things are everywhere around me (near Chicago, IL) and it would have been insightful to do some reverse-engineering. Alas, their schemes shall remain mysterious.
- neilv 3y agoGambit also hits another naming convention for Scheme implementations: that they be synonyms for "scheme" or related to it. Scheme, Gambit, Racket, Guile, Larceny. Gauche might be an antonym? (IIRC, Racket got its name shortly before they were looking into promoting its use on Wall Street. I guess OCaml didn't have the problem of lighting up the regulatory compliance monitoring board every time someone mentioned "Racket" in email.)
- davexunit 3y agoGuile has the extra layer of being "Guy L." (Steele)
- CodeArtisan 3y ago>Gauche might be an antonym? IIRC it is a reference to this (Gauche author is Japanese) https://en.wikipedia.org/wiki/Gauche_the_Cellist https://en.wikipedia.org/wiki/Gauche_the_Cellist
- soegaard 3y agoAlso: Picobit and Picbit.
- belmarca 3y agoAnd Ribbit: https://github.com/udem-dlteam/ribbit https://github.com/udem-dlteam/ribbit.
- mrweasel 3y agoI though it was due to the world already having Chicken Scheme and Gerbil Scheme, neither of which ends in "bit". Edit: Rabbit seems to be older than both of those two schemes.
- belmarca 3y agoBTW, I have Kranz's Orbit thesis on my desk. Nice and succinct!