Tcl (pronounced ``tickle'') stands for ``tool command language''. It is designed to be easily extended. Tcl is a real scripting language in the sense that the prime data structure is the string, and that variable substituion can occur anywhwere. All arguments passed to procedures and results returned by them are strings.
The language that the Tcl interepreter implements is rather small, consisting of little more than variable interpolation (replacing a variable with its value), several quoting mechanisms (to decide when interpolation occurs) and command substition (replacing a command with the value that it returns).
There aren't too many standard extensions to Tcl, the whole idea is that it is easy to do local extensions, though Expect and Tk are two very useful extensions.
All other commands are implemented in C and are called by the Tcl interpreter.