Report Number: CS-TR-87-1184
Institution: Stanford University, Department of Computer Science
Title: Firmware Approach to Fast Lisp Interpreter
Author: Okuno, H.
Author: Osato, N.
Author: Takeuchi, I.
Date: September 1987
Abstract: The approach to speed up a Lisp interpreter by implementing
it in firmware seems promising. A microcoded Lisp interpreter
shows good performance for very simple benchmarks, while it
often fails to provide good performance for larger benchmarks
and applications unless speedup techniques are devised for
it. This was the case for the TAO/ELIS system. This paper
describes various techniques devised for the TAO/ELIS system
in order to speed up the interpreter of the TAO language
implemented on the ELIS Lisp machine. The techniques include
data type dispatch, variable access, function call and so on.
TAO is not only upward compatible with Common Lisp, but also
incorporates logic programming, object-oriented programming
and Fortran/C-like programming into Lisp programming. TAO
also provides concurrent programming and supports multiple
users (up to eight users). The TAO interpreter for those
programming paradigms is coded fully in microcodes. In spite
of rich functionalities, the speed of interpreted codes of
TAO is comparable to that of compiled codes of commercial
Lisp machines. Furthermore, the speeds of the interpreted
codes of the same program written in various prograrnming
paradigms in TAO does not differ so much. This speed balance
is very important for the user.
Another outstanding feature of the TAO/ELIS system is its
firmware development environments. Micro Assembler and Linker
are written in TAO, which enables the user to use the
capability of TAO in microcodes. Since debugging tools are
also written in mini-Lisp, many new tools were developed in
parallel to debugging of microcodes. This high level approach
to firmware development environments is very important to
provide high productivity of development.