Tcl

Tcl
Tcl logo
Paradygmat Wieloparadygmat : sterowany zdarzeniami , funkcjonalny , imperatywny , zorientowany obiektowo
Zaprojektowany przez Johna Ousterhouta
Deweloper Główny zespół Tcl
Po raz pierwszy pojawiły się 1988 ; 35 lat temu ( 1988 )
Wersja stabilna
Edit this on Wikidata 8.6.13 / 22 listopada 2022 r
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
www.tcl-lang.org www.tcl.tk _ _ _ _
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

Plik Tcl edytowany w środowisku Eclipse IDE

Funkcje Tcl obejmują

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 od elseif z alternatywnym warunkiem i treścią, lub też 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 w while ) 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, for i 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” dla if i zapętlonych.
  • list tworzy listę zawierającą wszystkie argumenty lub pusty łańcuch, jeśli nie podano żadnego argumentu. Polecenia lindex 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 i yield 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 ) 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ż

Dalsza lektura

Linki zewnętrzne