Fourth Annual USENIX Tcl/Tk Workshop, 1996
An On-the-fly Bytecode Compiler for Tcl
Brian T. Lewis
Sun Microsystems Labs
Abstract
To improve the speed of interpreting Tcl programs, we are developing
an on-the-fly bytecode compiler as part of the Tcl project at Sun
Microsystems Laboratories. This new compilation system supports
dual-ported objects that are stored in Tcl variables and passed to
procedures instead of strings. These objects allow faster integer,
list, and other operations by including an appropriate internal
representation in addition to a string. Early performance results show
significant improvement for some scripts. On a 167MHz UltraSPARC 1,
lindex of the last element of a 100 element list takes 3 microseconds
compared to 72 for the current Tcl interpreter. A set command that
stores a new value in a local variable now takes less than 1
microsecond vs. 5.8 to 10 microseconds (depending on the length of the
variable name) for the current system. This paper describes the design
of the compiler and its current state, outlines its development plan,
and gives some early performance results. It also describes some
implications of the compiler for Tcl script and extension
View the full text of this paper in
HTML and
POSTSCRIPT (172,194 Bytes) form.
To Become a USENIX Member, please see our
Membership Information.
|