Friday, October 8, 2010

Scheme

Lately, I have been learning Scheme, an elegant, minimalistic Lisp. Scheme is one of a few dialects of Lisp; two others that are (fairly) popular are Common Lisp and Clojure. I have used Common Lisp before -- it is a large, powerful language of ancient and storied lineage, yet one that is quite modern, if not as rich in libraries as others. Scheme, in comparison (although it shares some of Common Lisp's ancestry), is quite compact.

Perhaps as a side-effect of its compactness and clarity, there exists a large body of literature pertaining to Scheme and its implementation. It seems to me that this is a good place to start learning about the implementation of dynamic, interactive programming languages, a topic in which I am interested. I am especially curious about compiler design and construction for such languages -- what are the techniques for making a dynamic language go fast?