Aviva Directory » Computers & Internet » Programming » Tcl

Tcl is a multifaceted language package. As a programming language, it is high-level, interpreted, and dynamic. The Tk library allows users to build a graphical user interface (GUI) natively in Tcl.

Tcl/Tk supports several programming paradigms, including functional, imperative, objected-oriented, and procedural. Tcl/Tk libraries can be used to embed powerful scripting capabilities into a compiled application, such as C, Java, or Fortran.

The programming language was developed by Dr. John Ousterhout at University of California at Berkeley in 1988. Although the name is derived from Tool Command Language, it is generally written as Tcl rather than as TCL.

An original design goal was to create a language that was small enough to be embedded in other programs, but which could be easily extended with new functionality. It was designed to execute other programs in the manner of a shell scripting language. The core language was to be a solid base for building specialized languages around a common set of core commands and syntax, the idea being that it would be useful for building specialized tools.

However, as programmers created Tcl extensions with support for graphics, database interaction, distributed processing, and so on, they also began writing applications in pure Tcl. Today, Tcl is widely used for in-house packages, as an embedded scripting language in commercial products, as a rapid prototyping language, as a framework for regression testing, and for 24/7 mission-critical applications.

Perhaps the chief strength of Tcl is that the base language remains small while supporting a wide variety of uses that are made possible through extensions. A number of special-purpose extensions have been added to the language, the most common being Tk.

Tk is a toolkit for developing graphical user interface (GUI) applications. It extends the core Tcl facilities with commands for building user interfaces. In many distributions, known as Tcl/Tk, the Tk extension is included as part of the Tcl core. Tile/Tkt is an extension to Tk that gives Tk widgets the look and feel of their native operating system applications.

Other popular extensions of Tcl include Incr Tcl, which adds support for C++ style object-oriented programming, and Expect, which simplifies controlling other applications and devices, and allows complex tasks to be automated. However, with Tcl 8.6, object-oriented support is part of the core language. Other extensions include Itcl/IncrTcl, TcITLS, Tcllib, TclUDP, tDOM, Tix, and Tklib.

Tcl is usually distributed with two interpreters, tclsh and wish, documentation, and support libraries. Tclsh is a text-based interpreter, while wish is a basic interpreter with Tk graphics commands added.

Tcl, or Tcl/Tk is available as free software, and as a commercially supported package. The core language is supported by a worldwide group of volunteers, while commercial support for the language can be purchased from ActiveState, Cygnus, Noumena Corporation, and others. Tcl/Tk runtime packages are included with Linux and FreeBSD packages, and with commercial UNIX distributions, such as HPUX, Solaris, and macOS.

Tcl code should execute unmodified on any system to which the Tcl interpreter has been ported.

The focus of resources listed in this category are those relating to the Tcl programming language, the Tcl/Tk distribution, or any implementations of Tcl, as well as extensions, IDEs, editors, or other tools designed to facilitate Tcl programming. Tcl or Tcl/Tk user groups, forums, tutorials, or guides are also appropriate for this category.



Recommended Resources

Search for Tcl on Google or Bing