Tcl implementations

Difference between version 62 and 63 - Previous - Next
'''Tcl Implementations''' is a brief description of each implementation of Tcl
listed in [Category Tcl Implementations], preceded by the language it is
implemented in.



** See Also **

   [Small Tcl]:   

   [tclquadcode]:   

   [Tcl in Javascript]:   



** Implementations **


%| 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| [Erlang%|%OTPCL]| Open Telecom Platform Command Language. |&
&| FORTRAN| [FEMTOL] | |&&| Go| https://gitlab.com/cznic/tcl%|%Tcl%|%, https://gitlab.com/cznic/tk%|%Tk%|% | Tcl/Tk 8.6 translated from C to Go source, using https://pkg.go.dev/modernc.org/ccgo/v3%|%ccgo%|% plus custom or translated libc, libx11, sqlite, et.al. See:  https://pkg.go.dev/search?limit=100&m=package&q=modernc%|%ModernC Go pkgs%|%, https://gitlab.com/users/cznic/projects%|%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| [https://github.com/ProgLanguages/TCL_Interpreter%|%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 | [http://code.google.com/p/hiccup/], 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| [https://gitlab.com/Random_Civvy/popstcl%|%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.



** Languages Inspired by Tcl **

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]. |&
&| [http://ficl.sourceforge.net/%|%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. |&
&| [Windows PowerShell%|%PowerShell] | [C#] | [http://en.wikipedia.org/wiki/PowerShell%|%PowerShell at Wikipedia], [http://microsoft.com/powershell%|%PowerShell at Microsoft], [https://github.com/PowerShell/PowerShell%|%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]. |&



** Misc **

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.

[https://github.com/ahgamut/tcl/tree/cosmopolitan%|%An attempt to build Tcl] using the https://github.com/jart/cosmopolitan%|%Cosmopolitan "build-once run-anywhere" C library


<<categories>> Tcl Implementations