Updated 2018-02-24 15:55:41 by dbohdan

Tcl Implementations is a brief description of each implementation of Tcl listed in Category Tcl Implementations, preceded by the language of its source code.
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.
Parrot ParTcl the Tcl implementation for parrot, the Perl 6 virtual machine
Java Jacl intended as a full implementation of Tcl in Java
Java JTcl implementation of Tcl 8.4 in Java
Java Hecl designed to be small, intended for J2ME cellphones
Java APWTCL (Java) very similar to Jim, same commands as APWTCL, additionally itcl functionality
JavaScript Tcl in JavaScript converted from Picol
JavaScript APWTCL converted and enhanced from Tcl in Javascript and Jim, additionally itcl functionality
FORTRAN FEMTOL
Tcl concept, HereTcl, MicroTcl for Tcl9, The Very Minimal Tcl Core Command Set, Titoo: a thought experiment or T2 Implement tcl in tcl
Haskell Hiccup [1], 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
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."

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.

Languages Inspired by Tcl  edit

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.
Tinker C See Small Tcl.

Misc  edit

Other systems listed on Category Tcl Implementations are not distinct implementations:
Parenthetcl
is a Tcl/C hybrid for writing compiled Tcl extensions
Tclkit
is really a Tcl distribution. It is a single binary file that provides Tcl/Tk and a number of popular extensions.

See also  edit