CSXXX-The Implementation of Embedded Scripting Languages
Spring 2000

Professor: Norman Ramsey, 231 Maxwell Dworkin


John Ousterhout's Tool Command Language (Tcl) started a rush to embed programming languages inside of other programming languages, usually to provide extension languages for C programs. Perl, Python, Scheme, and PostScript can all be embedded, and languages like S-Lang, Lua, Obliq, and Visual Basic are designed expressly for embedding. There are also Ivy, xlisp, Gorby, GUILE, Emacs Lisp, and I could go on.

The exact syllabus for the seminar will depend on the interests of the participants, but I expect to cover the following topics:

If done well, this analysis could result in a good survey paper.

We may also, depending on the interests of the participants, take it on ourselves to improve an aspect of the implementation of embedded languages. I have already spotted an opportunity in memory management that I think is easily reachable by a small seminar.

Finally, if we lose our senses entirely, we may design and implement our own (small) embedded language.


Participants should have at least superficial exposure to program translation (compiler front ends) and automatic memory management (garbage collection). Experience with interpreters is not necessary; we'll review the necessary material in the first week or two.