Reklama
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

Incr Tcl

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.

Reklama

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:

Reklama
  • 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`.

Reklama
Reklama