Incr TCL (ITCL) je první z objektově orientovaných rozšíření jazyka TCL . Částečně implementováno v jazyce C. S jeho využitím je napsána knihovna grafických widgetů incr Widgets (iWidgets). Název tohoto rozšíření je jakýmsi „překladem“ názvu C++ do jazyka Tcl , příkaz incr , stejně jako operace ++ , zvyšuje svůj argument o 1.
Spolu s XOtcl a SNIT je jedním ze tří nejoblíbenějších objektově orientovaných rozšíření Tcl [1] .
ITCL - definuje následující příkazy:
Jako příklad je uveden obal objektu nad textovými soubory Tcl. Ukazuje použití konfigurátorů.
soubor třídy { # popsat a nastavit počáteční hodnoty # místních proměnných soukromá proměnná fid "" název veřejné proměnné "" přístup veřejné proměnné "r" # define konstruktor a destruktor konstruktor { args } { eval configure $args # configure aktivuje konfigurátory } destruktor { if { $fid != "" } { zavřít $fid } } #describe metody třídy metoda get {} metoda put { řádek } metoda eof {} } # definovat těla metod body Soubor::get {} { return [ get $fid ] } body File::put { line } { vloží $fid $line } body Soubor::eof {} { návrat [ :: eof $fid ] } # definovat konfigurátor pro # název globální proměnné # konfigurátor pro přístup není vytvořen configbody File::name { if { $fid != "" } { zavřít $fid } nastavit fid [ otevřít $name $access ] } # # třída Soubor v akci: # # vytvořte soubor x objekt #configure jeho název x configure - name / etc / passwd #zobrazení obsahu souboru řádek po řádku, zatímco { ! [ xeof ] } { vloží "=> [x get]" } #delete object odstranění objektu xRůzní členové třídy jsou popsáni pomocí následujících příkazů dostupných v definici třídy: konstruktor , destruktor , metoda , proc (na rozdíl od metody se nedědí), proměnná , společný (podobně jako static v C++), public , protected , private , set a array . Dědičnost se nastavuje příkazem inherit . Vícenásobná dědičnost je povolena. Všechny metody jsou virtuální. Při definování třídy můžete použít techniky metaprogramování , například k definování několika lokálních proměnných ve smyčce spolu s přístupovými objekty set and get k nim [3] .
Složený tým (nebo soubor) je definován jako:
název souboru comp příkaz arg arg ...nebo
složení názvu souboru { název částiArgumenty části tělo … … název souboruSubConst { název části Argumenty podčásti tělo … … } }Soubory Tcl jsou pohodlným syntaktickým doplňkem ke standardnímu mechanismu souboru jmenného prostoru Tcl . Tento mechanismus umožňuje seskupit několik příkazů do jednoho jmenného prostoru - souboru. Volání příkazu - část souboru vypadá takto:
nameConst argumenty namePartsKonstruktů souboru se stejným názvem může být libovolný počet , všechny v nich definované části budou zahrnuty do stejného souboru [4] .