Incr Tcl (Itcl)
Incr Tcl (Itcl) to rozszerzenie języka TCL, które wprowadza obiektowość. Nazwa „Incr” nawiązuje do inkrementacji w TCL, gdzie komenda `incr` służy do zwiększania wartości zmiennej.
Komendy Itcl
Pakiet Itcl oferuje szereg nowych komend w przestrzeni nazw `itcl`. W wersji 3.2 dostępne są następujące komendy:
- itcl::body
- itcl::class
- itcl::code
- itcl::configbody
- itcl::delete
- itcl::ensemble
- itcl::find
- itcl::local
- itcl::scope
Struktura klas i obiektów
Itcl czerpie wiele koncepcji z C++. Klasa w Itcl składa się z:
- Konstruktora i destruktora
- Metod oraz zmiennych
- Poziomów dostępu: public, protected, private
Klasom można przypisywać stałe procedury, które są dostępne bez tworzenia instancji. Itcl wprowadza także zmienne „wspólne”, dostępne dla metod oraz procedur w klasie. Dodatkowo, Itcl wspiera polimorfizm i dziedziczenie, a większość metod klas jest wirtualna.
Przykładowa klasa Itcl
Przykład klasy implementującej stos:
itcl::class Stack { private { variable stack "" } public { method push {arg} method pop {} method clear {} method count {} } }
Przykładowe użycie klasy:
Stack st st push "word 1" st push "word 2" st push "word 3" puts [st pop] puts [st pop] puts [st pop]
Wynik:
word 3 word 2 word 1
Integracja z C
W Itcl możliwe jest rejestrowanie funkcji C przy użyciu `Itcl_RegisterC()`, co pozwala na ich bezpośrednie użycie w metodach klas, poprzedzając nazwę znakiem „@”.
Inne rozszerzenia oparte na Itcl
Do rozszerzeń bazujących na Itcl należą ITk (połączenie Tk i Itcl) oraz IWidgets (dodatkowe elementy GUI).
Przyszłość Itcl
Trwają dyskusje na temat włączenia Itcl do standardowego pakietu TCL, co umożliwi programistom korzystanie z obiektowości w TCL. W planach jest dodanie możliwości sprawdzania typów oraz dostępu do zmiennych w składni `obiekt.zmienna`.