• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Incr Tcl



    Podstrony: [1] 2 [3] [4]
    Przeczytaj także...
    Graficzny interfejs użytkownika, środowisko graficzne (ang. Graphical User Interface, GUI) – ogólne określenie sposobu prezentacji informacji przez komputer oraz interakcji z użytkownikiem, polegające na rysowaniu i obsługiwaniu widżetów.Tk – wolny, wielosystemowy zestaw narzędzi zawierający bibliotekę podstawowych widżetów służący do budowania graficznych interfejsów użytkownika (GUI).
    Struktura klas i obiektów[ | edytuj kod]

    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.

    Polimorfizm (z gr. wielopostaciowość) - mechanizmy pozwalające programiście używać wartości, zmiennych i podprogramów na kilka różnych sposobów. Inaczej mówiąc jest to możliwość wyabstrahowania wyrażeń od konkretnych typów.C – imperatywny, strukturalny język programowania wysokiego poziomu stworzony na początku lat siedemdziesiątych XX w. przez Dennisa Ritchiego do programowania systemów operacyjnych i innych zadań niskiego poziomu.

    Przykładowa klasa Itcl[ | edytuj kod]

    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:

    Tcl (Tool Command Language) – język skryptowy o składni częściowo podobnej do języków skryptowych powłok, oraz częściowo do Lispu. Jest znany z pakietu Tk (Tk Toolkit), który pozwala na pisanie przenośnych graficznych interfejsów użytkownika (GUI) dla wielu systemów operacyjnych oraz pakietu Expect, który pozwala na automatyzację zadań.Obiektowy język programowania – język programowania, który umożliwia lub wymusza stosowanie obiektowych metod programowania.
    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
    

    Itcl i | edytuj kod]

    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.

    Podstrony: [1] 2 [3] [4]



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Reklama

    Czas generowania strony: 0.01 sek.