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 , and Tcl/Tk application binaries through Go. |
| 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. | |
| Now-lang | D | A document-oriented tool that contains a language based on Tcl |
| 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