Category:Tcl: Difference between revisions
Content added Content deleted
(→Language Syntax: Added some description of selected more recent commands of interest) |
m (Tcl/Tk 8.6.3 (2014-11-12)) |
||
Line 21: | Line 21: | ||
{{Codepad}} |
{{Codepad}} |
||
'''Tcl''' (short for '''T'''ool '''C'''ommand '''L'''anguage) |
|||
'''Tcl''' (short for '''T'''ool '''C'''ommand '''L'''anguage) is a scripting language with very simple syntax, dynamic typing, automatic storage allocation and [[garbage collection]] and native Unicode support. '''Tcl''' is often combined with the [[Tk]] library. As a result, it is often referred to as '''Tcl/Tk'''. |
|||
is a scripting language with very simple syntax, dynamic typing, |
|||
automatic storage allocation and [[garbage collection]] |
|||
and native Unicode support. <br> |
|||
'''Tcl''' is often combined with the [[Tk]] library, |
|||
which provides support for graphics and GUI. <br> |
|||
As a result, it is often referred to as '''Tcl/Tk'''. |
|||
Tcl is known to be supported under a variety of popular operating systems, |
Tcl is known to be supported under a variety of popular operating systems, |
||
including [[UNIX]], [[Linux]], [[BSD]], [[Windows]], [[WinCE]], [[PocketPC]], |
|||
[[Mac OS X]] and [[BeOS]]. <br> |
|||
Tcl is distributed under the [[wp:BSD licenses|BSD License]]. |
|||
;Current version: Tcl/Tk 8.6.3 (2014-11-12) |
|||
The Tcl language has been implemented in multiple lower-level languages. The most common one is '''[[libtcl]]''', written in [[C]], which is the engine used to power [[tclsh]] and [[wish]], but others exist. Notably, these include [[Jacl]] and [[Eagle]], which implement Tcl in [[Java]] and [[C sharp|C#]] respectively. |
|||
The Tcl language has been implemented in multiple lower-level languages. |
|||
The most common one is '''[[libtcl]]''', written in [[C]], which is |
|||
the engine used to power [[tclsh]] and [[wish]], but others exist. |
|||
Notably, these include [[Jacl]] and [[Eagle]], which implement |
|||
Tcl in [[Java]] and [[C sharp|C#]] respectively. |
|||
Its creator, John Ousterhout, wrote about it: |
Its creator, John Ousterhout, wrote about it: |
||
:''“I got the idea for Tcl while on sabbatical leave at DEC's Western Research Laboratory in the fall of 1987. I started actually implementing it when I got back to Berkeley in the spring of 1988; by summer of that year it was in use in some internal applications of ours, but there was no Tk. The first external releases of Tcl were in 1989, I believe. I started implementing Tk in 1989, and the first release of Tk was in 1991.”'' |
:''“I got the idea for Tcl while on sabbatical leave at DEC's Western Research Laboratory in the fall of 1987. I started actually implementing it when I got back to Berkeley in the spring of 1988; by summer of that year it was in use in some internal applications of ours, but there was no Tk. The first external releases of Tcl were in 1989, I believe. I started implementing Tk in 1989, and the first release of Tk was in 1991.”'' |
||
The principal pre-built distributions of Tcl are all based on [[libtcl]]; |
The principal pre-built distributions of Tcl are all based on [[libtcl]]; |
||
the main ones are [[ActiveTcl]] from ActiveState, |
|||
and [[tclkit]] from Equi4 Software ''et al''. <br> |
|||
Older versions of the language are distributed as part of |
|||
Apple's OSX and all Linux distributions. |
|||
==Language Syntax== |
==Language Syntax== |
||
===Grammar=== |
===Grammar=== |
||
Note that this is a simplified language grammar, and it is normal |
Note that this is a simplified language grammar, and it is normal |
||
to think of the language at a higher level where these differences don't show. |
|||
<br clear=all> |
<br clear=all> |
||
script '''::=''' command'''? ((''' “''\n''” '''|''' “'';''” ''')''' script ''')''' |
script '''::=''' command'''? ((''' “''\n''” '''|''' “'';''” ''')''' script ''')''' |