incr Tcl (commonly stylised as [incr Tcl], and often abbreviated to itcl) is a set of object-oriented extensions for the Tcl programming language. It is widely used among the Tcl community, and is generally regarded as industrial strength . Its name is a pun on "C++". Itcl implementations exist as both a package that may be dynamically loaded by a Tcl application, as well as an independent standalone language with its own interpreter.
Overview Features Namespace support Itcl allows namespaces to be used for organizing commands and variables.
Example: package require Itcl
itcl::class Toaster { variable crumbs 0 method toast {nslices} { if {$crumbs > 50} { error "== FIRE! FIRE! =="
set crumbs [expr $crumbs+4*$nslices]
method clean {} { set crumbs 0
itcl::class SmartToaster { inherit Toaster method toast {nslices} { if {$crumbs > 40} { clean
return [chain $nslices]
set toaster [SmartToaster #auto] $toaster toast 2
C code integration Itcl (like Tcl) has built-in support for the integration of C code into Itcl classes.
See also OTcl XOTcl Tcllib Itk Tk (framework)
References incr Tcl from the Ground Up by Chad Smith, published in January 2000. This is a complete reference manual for incr Tcl, covering language fundamentals, OO design issues, overloading, code reuse, multiple inheritance, abstract base classes, and performance issues. Despite its breadth, it follows a tutorial, rather than encyclopedic, approach. This book is out of print as of September 2004.
External links Itcl/incr Tcl project page Tcl package site tclweb project (there is a mailing list maintained at this site)