Creator of the Tcl language, John Ousterhout, states that embeddability is crucial for the language. What does embeddability mean? In simple words, Tcl should be easily embedded into other programming languages and tools.
In this direction, the following 3 characteristics form the basis of the language. Tcl should be extensible, simple & generic and open for integration.
Tcl should be extensible because any application that uses Tcl should be easily add its own features to the core features of the language and these additions should look natural.
Tcl should be simple and generic enough because it should work with variety of applications aiming different use cases.
Tcl should be open for integration because its main purpose is to integrate different things and act as a glue between different components. Therefore the language must have a good support for integration.
As stated earlier,
EDA tools like
Xilinx heavily uses Tcl as a command
and scripting language. All Tcl commands are supported by the latest version
of the tool are listed here.
Most of the commands like
are not native Tcl commands. They were added to the language by the vendor to
make calling and execution of tool related jobs possible. There are lots of
EDA tools having different custom Tcl command sets. Extending the language for
needs of different vendors is possible thanks to the given three properties.