Tcl Implementations is a brief description of each implementation of Tcl listed in Category Tcl Implementations, preceded by the language it is implemented in.
Impl. Lang. | Implementation | Description |
---|---|---|
C | Tcl | the definitive implementation and is written in C. The same code base can be used with different build options or targets, different sets of add-on packages, or different packaging (e.g. as a single binary file). These variations are distributions of Tcl and are covered in Category Distribution. |
C | TinyTcl | a slimmed-down fork of Tcl 6.7 |
C | ettcl | a slimmed-down fork of Tcl 7.x |
C | PalmTcl | a fork of Tcl 7.6 for PalmOS v3.x. See also Small Tcl. |
C | MicroTcl | a small subset of Tcl 8.4 for the Nebula 2 game/visualisation engine. See Small Tcl. |
C | Jim | intended as a small-footprint implementation of Tcl 8.x (not a fork of 7.x or earlier) |
C | Picol | a small interpreter in 500 lines of code - described as "an educational toy model only, it is weaker and slower than real Tcl" |
C | Capicol | [please add description] |
C++ | TinyTcl | (same name, different project) is a small interpreter written from scratch |
C# | tclcsharp | a port of Jacl to .NET |
C# | Jacl.NET | another port of Jacl to .NET |
C# | Eagle | an implementation of Tcl 8.4 for the CLR with selected features borrowed from Tcl 8.5 and 8.6 as well. |
C | Garuda | Tcl package for full CLR access via Eagle. |
Erlang | OTPCL | Open Telecom Platform Command Language. |
FORTRAN | FEMTOL | |
Go | Tcl , Tk | Tcl/Tk 8.6 translated from C to Go source, using ccgo plus custom or translated libc, libx11, sqlite, et.al. See: ModernC Go pkgs , ModernC Gitlab projects |
Java | Jacl | intended as a full implementation of Tcl in Java |
Java | JTcl Interpreter | implementation of Tcl 8.4 in Java, forked from Jacl |
Java | Hecl | designed to be small, intended for J2ME cellphones |
Java | APWTCL (Java) | very similar to Jim, same commands as APWTCL, additionally itcl functionality |
Java | TCL_Interpreter | Interpreter for Tcl language using ANTLR v4 |
JavaScript | Tcl in JavaScript | converted from Picol |
JavaScript | APWTCL | converted and enhanced from Tcl in Javascript and Jim, additionally itcl functionality |
Haskell | Hiccup | [L1 ], a proof of concept inspired by Picol, aims to mostly match Tcl 8.5 features |
Objective C | APWTCL (Objective C) | very similar to Jim, same commands as APWTCL, additionally itcl functionality |
Parrot | ParTcl | the Tcl implementation for parrot, the Perl 6 virtual machine |
Molt | Molt | A TCL interpreter for embedding in Rust applications and libraries. |
Rust | Popstcl | "a hobby language meant to practice Rust and to use embedded in other applications" |
Rust | https://github.com/veonik/rcl | "An experimental TCL interpreter written in Rust." |
Tcl | concept, HereTcl, MicroTcl for Tcl9, The Very Minimal Tcl Core Command Set, Titoo: a thought experiment or T2 | Implement tcl in tcl |
Several of these implementations are intended to reduce the footprint of Tcl. For a discussion of these small implementations, see Small Tcl. Many take advantage of the smaller size of earlier versions of (definitive) Tcl: see Advantages and disadvantages of different Tcl versions for a comparison.
These languages have recognizable similarities to Tcl:
Name | Impl. Lang. | Description |
---|---|---|
Brush | A proposed language by AMG. | |
Byticle | N/A | A fictive language in which there is *quite* no keyword, with a generalized infix notation. Related to Tcl by minimalism, and by space-delimited tokens. Inspired by Scheme. |
Cloverfield | C | By FB. Very nearly Tcl, with slightly different semantics in spots. Well-written and a source of ideas for future Tcl development. |
Cricket | See Small Tcl. | |
Ficl | ANSI C | Really an implementation of Forth. |
gotcl | Go | Interpreter for a Tcl-like language as a Go library. |
lil | C, Free Pascal (port) | A small, highly dynamic scripting language designed to be easily embedded in existing applications. |
L | A compiled-to-byte-code language compiling to Tcl byte codes and thus leveraging the entire Tcl runtime. | |
PowerShell | C# | PowerShell at Wikipedia , PowerShell at Microsoft , PowerShell at GitHub |
Rush | Scheme and C (source code missing) | "Rush arose from a desire for a faster Tcl that would run applications at speeds near those achieved by their C equivalents." |
szl | C | A tiny, embeddable scripting language inspired by Tcl and shell where everything is an object. |
Til-lang | D | A command language on top of D |
Tinker | C | See Small Tcl. |
Other systems listed on Category Tcl Implementations are not distinct implementations:
An attempt to build Tcl using the Cosmopolitan "build-once run-anywhere" C library