networktestinggenius.tk
Your networking tutor
Exclusive networking testing notes
Learn Networking & Testing topics

TCL
Tcl (Tool Command Language) is a dynamic programming/scripting language based on concepts of Lisp, C, and Unix shells. It can be used interactively, or by running scripts (programs) which can use a package system for structuring, hence allowing to do much with little code. Tcl is available for Linux, Windows, Mac OS X, as well as other platforms, as open-source software under BSD-like license, or as pre-built binaries.
Features of Tcl
Embeddability
Tcl is a small language designed to be embedded in other applications (C programs for example) as a configuration and extension language. This minimizes the number of languages that users need to learn in order to configure their applications, and makes these applications programmable with no extra effort. In addition, Tcl is a complete and well-designed programming language, whereas many existing configuration languages were designed (to be kind) in an ad hoc manner.
Extensibility
Tcl is specially designed to make it extremely easy to extend the language by the addition of new primitives in C. These new primitives are truly first-class citizens of the language, sharing the same error handling and memory management as the original primitives. This has led to many useful extensions, such as DBMS access (extensions exist for Oracle, Sybase, Ingres, Postgres and many other DBMS's), SNMP, Motif, etc. In addition, this allows Tcl programs to be optimized by moving time critical code into C.
Equivalence of Data and Programs
Like Lisp, Tcl uses the same representation for data and for programs. This means that Tcl programs or scripts can be manipulated as data: stored in variables, written to and later read from files or databases, passed from one Tcl program to another across the Internet, etc. In addition, it means that the programmer can create new Tcl control structures or error handling routines as easily as writing a simple function.
Automatic Memory Management
All Tcl data structures are dynamically allocated and fully variable in size. The programmer never needs to allocate memory or specify maximum sizes.
Event-Driven Programming
Tcl supports event-driven programming (required for GUI programming) with the ability to associate Tcl code with any variable or array element (the code is executed automatically whenever the variable is read or written).
IPC Between Multiple Tcl Applications
Tcl supports the passing of Tcl code as messages between Tcl applications running on different machines across the Internet. This allows client-server protocols which incorporate the full power of the Tcl language, and makes it possible to write very tightly-integrated applications.
Program Development Tools
Tcl has a powerful symbolic debugger, timing and profiling tools, language sensitive editing modes for Emacs, a WYSIWYG GUI builder (xf), a real-time application monitor (tkinspect), etc.
Freely Redistributable
The source code for the Tcl language system is freely copyable for any purpose, so it can be used in commercial applications as well as academic applications and freeware.
By virtue of it's extensibility, here are some of the specialized Tcl variants that are widely used; they are readily mixed and matched: