Tcl
Paradygmat | Wieloparadygmat : sterowany zdarzeniami , funkcjonalny , imperatywny , zorientowany obiektowo |
---|---|
Zaprojektowany przez | Johna Ousterhouta |
Deweloper | Główny zespół Tcl |
Po raz pierwszy pojawiły się | 1988 |
Wersja stabilna | |
Dyscyplina pisania | Dynamiczne pisanie , wszystko może być traktowane jako ciąg znaków |
Licencja | w stylu BSD |
Rozszerzenia nazw plików | .tcl, .tbc |
Strona internetowa |
|
Główne implementacje | |
ActiveTcl Androwish | |
Dialects | |
Jim , Eagle | |
Pod wpływem | |
AWK , Lisp | |
Pod wpływem | |
PHP , PowerShell , Tea |
Tcl (wymawiane jako „ łaskotek ” lub jako inicjalizm ) jest interpretowanym , dynamicznym językiem programowania wysokiego poziomu ogólnego przeznaczenia . Został zaprojektowany z myślą o tym, aby był bardzo prosty, ale potężny. Tcl wrzuca wszystko do formy polecenia , nawet konstrukcje programistyczne, takie jak przypisywanie zmiennych i definiowanie procedur. Tcl obsługuje wiele paradygmatów programowania , w tym obiektowe , imperatywne i programowania funkcyjnego czy stylów proceduralnych .
Jest powszechnie używany jako osadzony w aplikacjach C , do szybkiego prototypowania , aplikacji skryptowych, GUI i testowania. Interpretery Tcl są dostępne dla wielu systemów operacyjnych , umożliwiając uruchamianie kodu Tcl w wielu różnych systemach. Ponieważ Tcl jest bardzo zwartym językiem, jest używany na systemów wbudowanych , zarówno w pełnej formie, jak iw kilku innych wersjach o niewielkich rozmiarach.
Popularna kombinacja Tcl z rozszerzeniem Tk jest określana jako Tcl/Tk i umożliwia budowanie graficznego interfejsu użytkownika (GUI) natywnie w Tcl. Tcl/Tk jest zawarty w standardowej Pythona w postaci Tkinter .
Historia
Język programowania Tcl został stworzony wiosną 1988 roku przez Johna Ousterhouta podczas pracy na Uniwersytecie Kalifornijskim w Berkeley . Pierwotnie „narodził się z frustracji”, według autora, kiedy programiści opracowali własne języki przeznaczone do osadzenia w Magic do automatyzacji projektowania elektronicznego (EDA) , w której John skupiał się zawodowo. Później Tcl zyskał akceptację na własną rękę. Ousterhout otrzymał nagrodę ACM Software System Award w 1997 roku za Tcl/Tk.
Nazwa pierwotnie pochodzi od języka Tool Command L anguage, ale jest konwencjonalnie zapisywana jako „Tcl”, a nie „TCL” .
Data | Wydarzenie |
---|---|
styczeń 1990 | Tcl ogłoszony poza Berkeley (Winter USENIX ). |
czerwiec 1990 | Oczekiwać zapowiedziano (letni USENIX). |
styczeń 1991 | Pierwsza zapowiedź Tk (Winter USENIX). |
czerwiec 1993 | Pierwsza konferencja Tcl/Tk (Berkeley). [table] menedżer geometrii (prekursor [grid]), [incr Tcl] , TclDP i Groupkit, ogłoszono tam. |
sierpień 1997 | Tcl 8.0 wprowadził kompilator kodu bajtowego. |
kwiecień 1999 r | Tcl 8.1 wprowadza pełną obsługę Unicode i zaawansowane wyrażenia regularne . |
sierpień 1999 | Tcl 8.2 wprowadza architekturę rozszerzeń Tcl (TEA) |
sierpień 2000 | Utworzono Tcl Core Team, przenosząc Tcl do modelu rozwoju bardziej zorientowanego na społeczność. |
wrzesień 2002 r | Dziewiąta konferencja Tcl/Tk (Vancouver). Zapowiedź systemu pakowania starkit. Wydano Tcl 8.4.0. |
grudzień 2007 | Tcl 8.5 dodał nowe typy danych, nowe repozytorium rozszerzeń, bignums , lambdas . |
Grudzień 2012 | Tcl 8.6 dodał wbudowany system obiektów dynamicznych, TclOO i ocenę bez stosów. |
Konferencje i warsztaty Tcl odbywają się zarówno w Stanach Zjednoczonych, jak iw Europie.
Cechy
Funkcje Tcl obejmują
- Wszystkie operacje są poleceniami , łącznie ze strukturami językowymi. Są one zapisane w notacji przedrostkowej .
- Polecenia zwykle akceptują zmienną liczbę argumentów (są variadic ).
- Wszystko można dynamicznie przedefiniować i nadpisać. W rzeczywistości nie ma słów kluczowych, więc nawet struktury kontrolne można dodawać lub zmieniać, chociaż nie jest to wskazane.
- Wszystkie typy danych mogą być przetwarzane jako łańcuchy znaków , łącznie z kodem źródłowym . Wewnętrznie zmienne mają typy takie jak integer i double, ale konwersja jest czysto automatyczna.
- Zmienne nie są deklarowane, ale przypisywane do. Użycie niezdefiniowanej zmiennej powoduje błąd.
- W pełni dynamiczny, oparty na klasach system obiektowy TclOO, w tym zaawansowane funkcje, takie jak metaklasy, filtry i domieszki .
- Sterowany zdarzeniami interfejs do gniazd i plików . Możliwe są również zdarzenia oparte na czasie i zdefiniowane przez użytkownika.
- domyślnie ograniczona do zakresu leksykalnego (statycznego), ale
wyższy poziom
iwyższy poziom
pozwalają procom na interakcję z zakresami otaczających funkcji. - Wszystkie polecenia zdefiniowane przez sam Tcl generują komunikaty o błędach w przypadku nieprawidłowego użycia.
- Rozszerzalność za pośrednictwem języków C , C++ , Java , Python i Tcl.
- Język interpretowany przy użyciu kodu bajtowego
- Pełna obsługa Unicode (3.1 na początku, regularnie aktualizowana), wydana po raz pierwszy w 1999 roku.
- Wyrażenia regularne
- Wieloplatformowość : Windows API ; Unix , Linux , Macintosh itp.
- Ścisła, wieloplatformowa integracja z interfejsem okienkowym ( GUI ) Tk .
- Istnieje wiele mechanizmów dystrybucji:
- Pełna wersja rozwojowa (dla Windows np. ActiveState Tcl , patrz [1] )
- Tclkits (pojedynczy plik wykonywalny zawierający pełne środowisko uruchomieniowe skryptów, o rozmiarze tylko około 4 megabajtów), Starkits (mechanizm opakowujący do dostarczania aplikacji w samodzielny, niewymagający instalacji i wysoce przenośny sposób) oraz Starpacks (połączenie Starkit z Tclkit do stworzyć Starpack – plik wykonywalny specyficzny dla jednej platformy, idealny do łatwego wdrożenia)
- Jim Interpreter , niewielka implementacja Tcl
- Swobodnie rozpowszechniany kod źródłowy na licencji BSD .
Sejf-Tcl
Safe-Tcl to podzbiór Tcl, który ma ograniczone funkcje, dzięki czemu skrypty Tcl nie mogą zaszkodzić ich maszynie hostującej ani aplikacji. Dostęp do systemu plików jest ograniczony, a wykonywanie dowolnych poleceń systemowych jest uniemożliwione. Wykorzystuje model podwójnego interpretera, w którym niezaufany interpreter uruchamia kod w niezaufanym skrypcie. Został zaprojektowany przez Nathaniela Borensteina i Marshalla Rose'a w celu dołączania aktywnych wiadomości do wiadomości e-mail. Safe-Tcl można dołączyć do wiadomości e-mail, gdy aplikacja/safe-tcl i multipart/enabled-mail są obsługiwane. Od tego czasu funkcjonalność Safe-Tcl została włączona jako część standardowych wydań Tcl/Tk.
Składnia i podstawowa semantyka
Składnia i semantyka Tcl są objęte dwunastoma regułami znanymi jako Dodekalogue.
Skrypt Tcl składa się z serii wywołań poleceń. Wywołanie polecenia to lista słów oddzielonych białymi znakami i zakończona znakiem nowej linii lub średnikiem. Pierwsze słowo to nazwa polecenia, które może być wbudowane w język, znalezione w dostępnej bibliotece lub zdefiniowane w samym skrypcie. Kolejne słowa służą jako argumenty do polecenia:
nazwapolecenia argument1 argument2 ... argumentN
W poniższym przykładzie użyto polecenia puts (skrót od „put string”) w celu wyświetlenia ciągu tekstowego na konsoli hosta:
umieszcza „Witaj, świecie!”
Spowoduje to wysłanie ciągu znaków „Hello, World!” do standardowego urządzenia wyjściowego wraz z dołączonym znakiem nowej linii.
Zmienne i wyniki innych poleceń można zastąpić łańcuchami, tak jak w tym przykładzie, w którym zastosowano polecenia set i expr do przechowywania wyniku obliczenia w zmiennej (zauważ, że Tcl nie używa =
jako operatora przypisania) i następnie używa puts do wydrukowania wyniku wraz z tekstem objaśniającym:
zestaw wyrażeń sum [wyrażenie 1 + 2 + 3 + 4 + 5 ] stawia "Suma liczb 1..5 to $sum."
Znak #
wprowadza komentarz . Komentarze mogą pojawiać się wszędzie tam, gdzie interpreter oczekuje nazwy polecenia.
# z nawiasami klamrowymi podstawianie zmiennych jest wykonywane przez expr set x 1 set sum [wyrażenie { $x + 2 + 3 + 4 + 5 }]; # $x nie jest zastępowane przed przekazaniem parametru do expr; # expr zastępuje $x 1, podczas gdy wartościowanie wyrażenia stawia „Suma liczb 1..5 to $sum”. ; # suma to 15
# bez nawiasów klamrowych podstawianie zmiennych następuje w miejscu definicji (zasięg leksykalny) set x 2 set op * set y 3 set res [wyrażenie $x$op$y ]; # $x, $op i $y są podstawiane, a wyrażenie jest oceniane na 6 i stawia "$x $op $y to $res." ; # $x, $op, $y i $res są zastępowane i oceniane jako łańcuchy znaków
Jak widać na tych przykładach, w języku istnieje jedna podstawowa konstrukcja: polecenie. Mechanizmy cytowania i reguły zastępowania określają sposób przetwarzania argumentów każdego polecenia.
Jedno specjalne podstawienie ma miejsce przed analizowaniem jakichkolwiek poleceń lub argumentów. Jeśli ostatnim znakiem w linii (tj. bezpośrednio przed nową linią) jest ukośnik odwrotny, to kombinacja odwrotnego ukośnika-nowej linii (oraz wszelkie spacje lub tabulatory bezpośrednio po nowej linii) są zastępowane pojedynczą spacją. Zapewnia to kontynuacji linii , dzięki któremu długie linie w kodzie źródłowym mogą być zawijane do następnej linii dla wygody czytelników.
Kontynuując normalne przetwarzanie argumentów, słowo zaczynające się od znaku podwójnego cudzysłowu ( "
) rozciąga się do następnego znaku podwójnego cudzysłowu. Takie słowo może więc zawierać białe znaki i średniki bez interpretowania tych znaków jako mających jakiekolwiek specjalne znaczenie (tj. są traktowane jak zwykłe znaki tekstowe. Słowo zaczynające się od otwierającego nawiasu klamrowego ( {
) rozciąga się do następnego zamykającego nawiasu klamrowego ( }
). Wewnątrz nawiasów klamrowych wszystkie formy podstawienia są pomijane, z wyjątkiem wspomnianej wcześniej eliminacji odwrotnego ukośnika i nowej linii. Słowa nie zawarte w żadnej konstrukcji są znane jako gołe słowa.
W słowach gołych i podwójnie cytowanych mogą wystąpić trzy rodzaje podstawień:
-
Podstawianie poleceń zastępuje zawartość zrównoważonych nawiasów kwadratowych wynikiem oceny skryptu w nich zawartego. Na przykład
[wyrażenie 1+2+3]
jest zastępowane wynikiem oceny zawartego wyrażenia (w tym przypadku 6). -
Podstawianie zmiennych zastępuje nazwę zmiennej poprzedzoną znakiem dolara zawartością (lub wartością) zmiennej. Na przykład
$foo
jest zastępowane przez zawartość zmiennej o nazwie „foo”. Nazwa zmiennej może być otoczona nawiasami klamrowymi, aby oddzielić ją od późniejszego tekstu w innych niejednoznacznych przypadkach (np.${foo}ing
). -
Podstawienie ukośnika odwrotnego zastępuje ukośnik odwrotny, po którym następuje litera innym znakiem. Na przykład
\n
jest zastępowane znakiem nowej linii.
Zastępowanie przebiega od lewej do prawej w pojedynczym skanowaniu każdego słowa. Żaden podstawiony tekst nie będzie ponownie skanowany pod kątem ewentualnych dalszych podstawień. Jednak w jednym słowie może pojawić się dowolna liczba podstawień.
Począwszy od Tcl 8.5, każde słowo może być poprzedzone przez {*}
, co powoduje, że słowo jest dzielone na składowe słowa podrzędne w celu zbudowania wywołania polecenia (podobnie jak sekwencja , @ funkcji
quasi-cytatów Lispa ).
W konsekwencji tych zasad wynik dowolnego polecenia może być użyty jako argument dla dowolnego innego polecenia. Zauważ, że w przeciwieństwie do powłok poleceń systemu Unix , Tcl nie dokonuje ponownej analizy żadnego łańcucha, chyba że zostanie to wyraźnie poinstruowane, co sprawia, że użycie interaktywne jest bardziej kłopotliwe, ale użycie skryptowe jest bardziej przewidywalne (np. obecność spacji w nazwach plików nie powoduje trudności).
Pojedynczy znak równości ( =
) nie pełni żadnej specjalnej roli w języku. Podwójny znak równości ( ==
) to test równości, który jest używany w kontekstach wyrażeń, takich jak polecenie expr
oraz w pierwszym argumencie if
. (Oba polecenia są częścią standardowej biblioteki; nie mają specjalnego miejsca w bibliotece i można je zastąpić w razie potrzeby).
Większość poleceń Tcl, zwłaszcza w bibliotece standardowej, to variadic , a proc
(konstruktor procedur poleceń skryptowych) pozwala na zdefiniowanie wartości domyślnych dla nieokreślonych argumentów i argument typu catch-all, aby umożliwić kodowi przetwarzanie dowolnej liczby argumenty.
Tcl nie jest typowany statycznie: każda zmienna może zawierać liczby całkowite, zmiennoprzecinkowe, łańcuchy znaków, listy, nazwy poleceń, słowniki lub dowolną inną wartość; wartości są reinterpretowane (z zastrzeżeniem ograniczeń składniowych) jako inne typy na żądanie. Jednak wartości są niezmienne , a operacje, które wydają się je zmieniać, w rzeczywistości po prostu zwracają nową wartość.
Podstawowe polecenia
Najważniejsze polecenia odnoszące się do wykonywania programu i operacji na danych to:
-
set
zapisuje nową wartość do zmiennej (tworzy zmienną, jeśli nie istnieje). Jeśli użyte tylko z jednym argumentem, zwraca wartość podanej zmiennej (w tym przypadku musi istnieć). -
proc
definiuje nowe polecenie, którego wykonanie skutkuje wykonaniem zadanego skryptu Tcl, zapisanego jako zestaw poleceń.return
można użyć do natychmiastowego przywrócenia kontroli dzwoniącemu.
Zwykłe polecenia kontroli wykonania to:
-
if
wykonuje zadaną treść skryptu (drugi argument), jeśli warunek (pierwszy argument) jest spełniony. Po nim mogą następować dodatkowe argumenty, zaczynając odelseif
z alternatywnym warunkiem i treścią, lubteż
z blokiem uzupełniającym. -
while
powtarza wykonywanie podanej treści skryptu, dopóki warunek (pierwszy argument) pozostaje spełniony -
foreach
wykonuje podane ciało, w którym zmienna kontrolna jest przypisywana do elementów listy jeden po drugim. -
dla
skrótu do inicjalizacji zmiennej sterującej, warunku (jak wwhile
) oraz dodatkowej instrukcji „następna iteracja” (polecenie wykonywane po wykonaniu ciała)
Powyższe polecenia zapętlające można dodatkowo kontrolować za pomocą następujących poleceń:
-
break
przerywa wykonywanie treści i wraca z polecenia pętli -
Kontynuuj
przerywa wykonywanie treści, ale kontrola jest nadal przekazywana poleceniu pętli. Chociaż oznacza to ponowne zapętlenie, fori
foreach,
podnieś następną iterację.
-
return
przerywa wykonywanie bieżącego ciała bez względu na to, jak głęboko znajduje się w procedurze, aż do osiągnięcia granicy procedury i zwraca daną wartość wywołującemu.
Zaawansowane polecenia
-
expr
przekazuje argument do oddzielnego interpretera wyrażeń i zwraca obliczoną wartość. Zauważ, że ten sam interpreter jest używany również do wyrażenia „warunkowego” dlaif
i zapętlonych. -
list
tworzy listę zawierającą wszystkie argumenty lub pusty łańcuch, jeśli nie podano żadnego argumentu. Polecenialindex
można użyć na wyniku, aby ponownie wyodrębnić oryginalne argumenty. -
tablica
manipuluje zmiennymi tablicowymi . -
dict
manipuluje słownikami (od 8.5), które są listami z parzystą liczbą elementów, gdzie każde dwa elementy są interpretowane jako para klucz/wartość. -
regexp
dopasowuje wyrażenie regularne do ciągu znaków. -
regsub
Wykonuje podstawienia na podstawie dopasowania wzorca wyrażenia regularnego. -
uplevel
to polecenie , które umożliwia wykonanie skryptu polecenia w zakresie innym niż bieżący najbardziej wewnętrzny zakres na stosie. -
upvar
tworzy łącze do zmiennej w innej ramce stosu. -
przestrzeń nazw
pozwala tworzyć, uzyskiwać dostęp i niszczyć osobne konteksty dla poleceń i zmiennych. -
Apply
stosuje funkcję anonimową (od wersji 8.5). -
coroutine
,yield
iyield
do tworzenia i generowania wartości z współprogramów (od wersji 8.6). -
try
umożliwia przechwytywanie i przetwarzanie błędów i wyjątków. -
catch
pozwala złapać wyjątkowe zwroty. -
zlib
zapewnia dostęp do funkcji kompresji i sum kontrolnych biblioteki Zlib (od wersji 8.6).
Wyższy poziom
uplevel
umożliwia wykonanie skryptu polecenia w zakresie innym niż bieżący najbardziej wewnętrzny zakres na stosie. Ponieważ skrypt poleceń może sam wywoływać procedury korzystające z uplevel , efektem netto jest przekształcenie stosu wywołań w drzewo wywołań.
Został pierwotnie zaimplementowany, aby umożliwić procedurom Tcl reimplementację wbudowanych poleceń (takich jak for , if lub while ) i nadal mieć możliwość manipulowania zmiennymi lokalnymi . Na przykład poniższy skrypt Tcl jest reimplementacją polecenia for (pomijając obsługę wyjątków ):
proc dla { initCmd testExpr zaliczkaCmd bodyScript } { wyższy poziom 1 $initCmd ustaw testCmd [ lista wyrażeń $testExpr ] while {[wyższy poziom 1 $testCmd ]} { wyższy poziom 1 $bodyScript wyższy poziom 1 $ zaawansowanyCmd } }
Upvar
upvar
powoduje, że jedna lub więcej zmiennych lokalnych w bieżącej procedurze odnosi się do zmiennych w wywołaniu procedury otaczającej lub do zmiennych globalnych . Komenda upvar ułatwia implementację wywołania procedury call-by-name, a także ułatwia budowanie nowych konstrukcji sterujących, takich jak procedury Tcl.
Polecenie decr, które działa jak wbudowane polecenie incr
, z tą różnicą, że odejmuje wartość od zmiennej zamiast ją dodawać:
proc decr { nazwa_zmiennej { zmniejszenie 1 }} { upvar 1 $ nazwa_zmiennej var incr var [wyrażenie { -$ zmniejszenie }] }
Zorientowany obiektowo
Tcl 8.6 dodał w 2012 roku wbudowany system obiektów dynamicznych, TclOO. Zawiera takie funkcje, jak:
- System obiektowy oparty na klasach. Tego oczekuje większość programistów od OO.
- Umożliwia dostosowywanie poszczególnych obiektów i dynamiczną redefinicję klas.
- Meta-klasy
- Filtry
- Mieszanki
- System do implementacji metod w niestandardowy sposób, dzięki czemu autorzy pakietów, którzy chcą znacząco różnych sposobów implementacji metody, mogą to zrobić w dość prosty sposób.
0
oo :: class utwórz owoce { metoda jedz {} { wstawia "pyszne!" } } oo :: class create banana { nadklasa konstruktor owoców { } { moja zmienna obrane zestaw obrane } metoda obrane {} { moja zmienna obrane zestaw obrane 1 stawia
metoda "skin now off" } jadalne ? {} { moja zmienna obrana zwraca $obrana } metoda jedz {} { if { ! [ moje jadalne ? ]} { moja skórka } następny } } set b [ banan nowy ] $b jedz → drukuje „zdejmuj teraz skórkę” i
"pyszny!" owoce niszczą $ b jedz → błąd „nieznane polecenie”
Tcl nie miał składni zorientowanej obiektowo (OO) do 2012 roku, więc pojawiły się różne pakiety rozszerzeń umożliwiające programowanie obiektowe. Są szeroko rozpowszechnione w istniejącym kodzie źródłowym Tcl. Popularne rozszerzenia obejmują:
TclOO zostało dodane nie tylko w celu zbudowania silnego systemu zorientowanego obiektowo, ale także w celu umożliwienia pakietom rozszerzeń budowania zorientowanych obiektowo abstrakcji przy użyciu go jako podstawy. Po wydaniu TclOO, incr Tcl został zaktualizowany, aby używać TclOO jako podstawy.
Tworzenie aplikacji internetowych
Tcl Web Server to czysta implementacja Tcl serwera protokołu HTTP. Działa jako skrypt na waniliowym interpreterze Tcl.
Apache Rivet to system programowania typu open source dla serwera Apache HTTP Server , który umożliwia programistom używanie Tcl jako języka skryptowego do tworzenia dynamicznych aplikacji internetowych. Rivet jest podobny do PHP , ASP i JSP . Rivet został opracowany głównie przez Damona Courtneya, Davida Weltona, Massimo Manghiego, Haralda Oehlmanna i Karla Lehenbauera . Rivet może korzystać z dowolnego z tysięcy publicznie dostępnych pakietów Tcl, które oferują niezliczone funkcje, takie jak interakcja z bazą danych (Oracle, PostgreSQL, MySQL, SQLite itp.) lub interfejsy do popularnych aplikacji, takich jak Biblioteka grafiki GD .
Współpraca z innymi językami
Interfejsy Tcl natywnie współpracują z językiem C. Dzieje się tak dlatego, że pierwotnie został napisany jako framework do dostarczania składniowego front-endu do poleceń napisanych w C, a wszystkie polecenia w tym języku (w tym rzeczy, które w przeciwnym razie mogłyby być słowami kluczowymi, takie jak if lub while ) są implementowane w
ten sposób
. Każda funkcja implementacji polecenia otrzymuje tablicę wartości, które opisują (już podstawione) argumenty polecenia i może interpretować te wartości według własnego uznania.
Cyfrowe symulatory logiczne często zawierają interfejs skryptowy Tcl do symulacji języków sprzętowych Verilog , VHDL i SystemVerilog .
Istnieją narzędzia (np. SWIG , Ffidl ) do automatycznego generowania kodu niezbędnego do połączenia dowolnych funkcji C i środowiska wykonawczego Tcl, a Critcl działa odwrotnie, umożliwiając osadzenie dowolnego kodu C w skrypcie Tcl i kompilowanie go w czasie wykonywania do biblioteki DLL .
Pakiety rozszerzeń
Język Tcl zawsze pozwalał na pakiety rozszerzeń, które zapewniają dodatkowe funkcje, takie jak graficzny interfejs użytkownika, automatyzacja aplikacji terminalowych, dostęp do bazy danych i tak dalej. Często używane rozszerzenia obejmują:
- Tk
- Najpopularniejszym rozszerzeniem Tcl jest zestaw narzędzi Tk , który udostępnia bibliotekę graficznego interfejsu użytkownika dla różnych systemów operacyjnych . Każdy GUI składa się z jednej lub więcej ramek . Każda ramka ma menedżera układu.
- Oczekuj
- Jednym z innych bardzo popularnych rozszerzeń Tcl jest Oczekuj rozszerzenie. Wczesny bliski związek Expect z Tcl jest w dużej mierze odpowiedzialny za popularność Tcl w płodnych obszarach zastosowań, takich jak testy Unix, gdzie Expect był (i nadal jest) używany z dużym powodzeniem do automatyzacji sesji telnet, ssh i szeregowych do wykonywania wiele powtarzalnych zadań (tj. pisanie skryptów aplikacji, które wcześniej były tylko interaktywne). Tcl był jedynym sposobem na uruchomienie Expect, więc Tcl stał się bardzo popularny w tych obszarach przemysłu.
- Tile/Ttk
- Tile/Ttk to kolekcja widżetów stylów i motywów, która może zastąpić większość widżetów w Tk wariantami, które są naprawdę natywne dla platformy poprzez wywołania systemu operacyjnego API . _ Tematy omówione w ten sposób to Windows XP , Windows Classic, Qt (który łączy się z bibliotekami środowiska X11 KDE ) i Aqua (Mac OS X). Motyw można również zbudować bez tych wywołań, używając definicji widżetów uzupełnionych piksmapami obrazu . Powstałe w ten sposób motywy obejmują Classic Tk, Step, Alt/Revitalized, Plastik i Keramik. W Tcl 8.4 ten pakiet jest znany jako Tile, podczas gdy w Tcl 8.5 został złożony w podstawową dystrybucję Tk (jako Ttk).
- Tix
- Tix, Tk Interface eXtension, to zestaw komponentów interfejsu użytkownika, które rozszerzają możliwości aplikacji Tcl/Tk i Python. Jest to pakiet oprogramowania typu open source utrzymywany przez wolontariuszy w Tix Project Group i udostępniany na licencji typu BSD.
- Itcl/IncrTcl
- Itcl jest systemem obiektowym dla Tcl i zwykle nosi nazwę [incr Tcl] (jest to sposób zwiększania wartości w Tcl, podobnie jak nazwa C++).
- Tcllib
- Tcllib to zestaw skryptowanych pakietów dla Tcl, których można używać bez konieczności kompilacji.
- Tklib
- Tklib to zbiór modułów narzędziowych dla Tk i towarzysz Tcllib.
- tDOM
- tDOM to rozszerzenie Tcl do parsowania XML, oparte na parserze Expat
- TclTLS
- TclTLS to rozszerzenie OpenSSL do Tcl.
- TclUDP
- Rozszerzenie TclUDP zapewnia prostą bibliotekę do obsługi gniazd UDP ( User Datagram Protocol ) w Tcl.
- Bazy danych
- Tcl Database Connectivity (TDBC), część Tcl 8.6, jest wspólnym interfejsem dostępu do baz danych dla skryptów Tcl. Obecnie obsługuje sterowniki dostępu do MySQL , ODBC , PostgreSQL i SQLite . W przyszłości planowane są kolejne. Dostęp do baz danych jest również wspierany przez rozszerzenia specyficzne dla bazy danych, których dostępnych jest wiele.
Zobacz też
- jajko
- Oczekiwać
- TclX
- Tkdesk
- Porównanie zintegrowanych środowisk programistycznych Tcl
- Porównanie języków programowania
- Lista języków programowania
- Moduły środowiskowe
Dalsza lektura
- Ousterhout, John K .; Jones, Ken (2009). Tcl i Tk Toolkit (wyd. 2). Addisona Wesleya. ISBN 978-0-321-33633-0 . Źródło 4 listopada 2012 r .
- Foster-Johnson, Eric (1997). Aplikacje graficzne z Tcl & Tk (wyd. 2). Nowy Jork, NY: M&T Books. ISBN 1-55851-569-0 . Źródło 4 listopada 2012 r .
- Brent B. Welch, Praktyczne programowanie w Tcl i Tk , Prentice Hall , Upper Saddle River, NJ, USA, ISBN 0-13-038560-3 , 2003
- J Adrian Zimmer, Tcl/Tk for Programmers , IEEE Computer Society , rozpowszechniane przez John Wiley and Sons, ISBN 0-8186-8515-8 , 1998
- Mark Harrison i Michael McLennan, Efektywne programowanie Tcl/TK , Addison-Wesley , Reading, MA, USA, ISBN 0-201-63474-0 , 1998
- Bert Wheeler, Książka kucharska programowania Tcl / Tk 8.5 , Packt Publishing , Birmingham, Anglia, Wielka Brytania, ISBN 1849512981 , 2011
- Wojciech Kocjan, Piotr Beltowski Programowanie sieciowe Tcl 8.5 , Packt Publishing , ISBN 1849510962 , 2010
- Clif Flynt Tcl/Tk, wydanie trzecie: przewodnik dla programistów , ISBN 0123847176 , 2012
- Ashok P. Nadkarni Język programowania Tcl , ISBN 154867964X , 2017
Linki zewnętrzne
- Oficjalna strona internetowa
- Źródła Tcl , główna witryna pobierania kodów źródłowych Tcl i Tk
- Odkrywaj wiki
- TkDocs
- Podręcznik koreańskiego Tcl / Tk
- amerykańskie wynalazki
- Bezpłatne oprogramowanie międzyplatformowe
- Oprogramowanie wieloplatformowe
- Dynamicznie typowane języki programowania
- Darmowe kompilatory i interpretery
- Wolne oprogramowanie zaprogramowane w C
- Języki programowania wysokiego poziomu
- Homoikoniczne języki programowania
- Wieloparadygmatowe języki programowania
- Obiektowe języki programowania
- Proceduralne języki programowania
- Języki programowania stworzone w 1988 roku
- Języki skryptowe
- Rodzina języków programowania Tcl
- Tekstowe języki programowania