Incr Tcl - Google

Incr Tcl

Z Wikipedii

Skocz do: nawigacji, szukaj

Spis treści

[edytuj] Wstęp

IncrTCL (lub skrótowo Itcl) jest rozszerzeniem języka TCL o orientację obiektową. Prefiks Incr jest analogią do zastosowanego wobec języka C sufiksu ++ (w języku C operator ++ oznacza inkrementację wartości zmiennej o 1, w TCLu natomiast robi się to za pomocą komendy incr).

[edytuj] Komendy

Pakiet Itcl dostarcza wielu nowych komend zawartych w jednej przestrzeni nazw - itcl. W wersji 3.2 sÄ… to:

itcl::body

itcl::class

itcl::code

itcl::configbody

itcl::delete

itcl::ensemble

itcl::find

itcl::local

itcl::scope


[edytuj] Struktura klas i obiektów

Wiele elementów zaczerpnięto z C++. Tak jak i w tam, tak tutaj klasa składa się z konstruktora, destruktora, metod, oraz zmiennych. Ponadto klasa może określać poziom dostępu do poszczególnych składowych klasy (metod lub zmiennych) za pomocą słów kluczowych public, protected, oraz private. W klasach można deklarować (lub od razu definiować) stałe procedury, które mogą być wywoływane z klasy - nie wymagają one tworzenia obiektu tej klasy (można porównać je do funkcji statycznych w klasach C++). Kolejną nietypową składową są zmienne wspólne, deklarowane (lub od razu inicjowane) słowem kluczowym common (te zaś można porównać do zmiennych statycznych w klasach C++) - do nich mają dostęp zarówno zwykłe metody klasy, jak i jej procedury. Nie zabrakło też tak istotnej własności języków zorientowanych obiektowo, jak polimorfizm. Każda klasa może dziedziczyć z innych klas (jednej, lub kilku). W Itcl praktycznie każda metoda klasy jest wirtualna.

[edytuj] Przykładowa klasa Itcl

Oto przykład klasy implementującej stos:

itcl::class Stack {
    private {
        variable stack ""
    }

    public {
        # Dodaje element 'arg' na stos
        method push {arg}

        # Zdejmuje ostatni element ze stosu i zwraca go
        method pop {}

        # Czysci stos
        method clear {}

        # Zwraca liczbe elementow na stosie
        method count {}
    }
}

itcl::body Stack::push {arg} {
    lappend stack $arg
}

itcl::body Stack::pop {} {
    if {[count] == 0} {return}
    set last [lindex $stack end]
    set stack [lrange $stack 0 end-1]
    return $last
}

itcl::body Stack::clear {} {
    set stack ""
}

itcl::body Stack::count {} {
    return [llength $stack]
}

Można teraz tej klasy używać w następujący sposób:

Stack st
st push "word 1"
st push "word 2"
st push "word 3"
puts [st pop]
puts [st pop]
puts [st pop]

Spowoduje to wyświetlenie kolejno:

word 3
word 2
word 1

[edytuj] Itcl i C

W ITCL wprowadzono nowatorskie rozwiązanie. Pisząc rozszerzenie do TCL w oparciu o ITCL możemy użyć funkcji Itcl_RegisterC(), aby "zarejestrować" funkcję C w rejestrze Itcl. Pozwala to na używanie takiej funkcji bezpośrednio w definicji metod klasy, przez poprzedzenie zarejestrowanej nazwy znakiem "@". W ten sposób można napisać implementację rozszerzenia w oparciu jedynie o klasy Itcl.

[edytuj] Inne rozszerzenia oparte o Itcl

Należą do nich ITk (niejako połączenie Tk i Itcl), oraz IWidgets (zestaw dodatkowych elementów GUI opartych o ITk).

[edytuj] Przyszłość Itcl

Trwają dyskusje o dołączeniu Itcl do standardowego pakietu TCL, aby dać programistom możliwość swobodnego używania orientacji obiektowej w TCLu. W samym rdzeniu Itcl dodana ma zostać możliwość sprawdzania typów, dostępu do zmiennych na zasadzie składni obiekt.zmienna, oraz wiele innych.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

Strona domowa projektu


Co Microsoft naprawi w lipcu?
Koncern z Redmond poinformował, że w przyszłym tygodniu we wtorek udostępni nowe biuletyny bezpieczeństwa. Będą to cztery poprawki, wszystkie oznaczone zostały jako "ważne".
Sąd nakazał ujawnienie danych użytkowników YouTube
Jak informuje serwis BBC News, sąd nakazał wyszukiwarkowemu gigantowi ujawnienie logów zawierających informacje na temat klipów wideo w serwisie YouTube. Decyzja ta jest częścią sprawy o naruszenie praw autorskich, jaką wytoczyła przeciwko Google firma Viacom.
Ostrzeżenie dla internautów-piratów
Virgin Media, jeden z największych brytyjskich dostarczycieli usług internetowych, wysłał do swoich klientów około 800 listów ostrzegających przed nielegalną wymianą plików chronionych prawami autorskimi.
Asus Eee Monitor ujrzał światło dzienne
Pierwszy raz wspomniano o nim na komputerowych targach Computex 2008. Mowa o komputerze ze znanej serii Eee firmy Asus. Eee Monitor, bo tak brzmi nazwa urządzenia, jest połączeniem komputera i wyświetlacza LCD.
Notebook ICom LightBook 1216 - kompan podróży!
Firma ICom wprowadziła na rynek nowy komputer przenośny dla osób, które często podróżują i zamierzają kupić niewielki i niedrogi laptop.
Linki: Strona g³ówna