Disambiguazione – Se stai cercando altri significati, vedi TCL.
Tcl
linguaggio di programmazione
AutoreJohn Ousterhout
Data di origine1988
Ultima versione9.0.3 (13 novembre 2025)
Paradigmiprogrammazione multi-paradigma, programmazione orientata agli oggetti, programmazione procedurale, programmazione imperativa, programmazione funzionale e programmazione a eventi
Tipizzazionedebole
Estensioni comunitcl e tbc
Influenzato daAwk e Lisp
Ha influenzatoPHP, PowerShell, Tea
Implementazione di riferimento
Licenzalicenza BSD
Sito webwww.tcl-lang.org

Tcl (acronimo di Tool Command Language[1], pronuncia tickle[2]) è un linguaggio di programmazione creato da John Ousterhout. È un linguaggio di scripting multipiattaforma, considerato di facile apprendimento e utilizzato nel rapid application development.[3][4]

Caratteristiche

modifica

Le caratteristiche del linguaggio TCL comprendono:

  • Qualsiasi cosa è un comando, comprese le strutture del linguaggio. Queste ultime utilizzano la notazione polacca detta anche notazione prefissa.
  • Qualsiasi cosa può essere ridefinita o sovrascritta dinamicamente.
  • Tutti i tipi di dato possono essere manipolati come stringhe, compreso il codice.
  • Utilizza regole sintattiche estremamente semplici.
  • Possiede un'interfaccia a eventi per i socket e i file.
  • Facilmente estendibile tramite un'API che permette di collegare all'interprete oggetti scritti in C, C++, REXX e Java.
  • Completo supporto per l'Unicode già dal 1999.
  • Indipendente dalla piattaforma. L'interprete è già stato portato su Win32, Unix, Mac, e altri.
  • Buona integrazione con il sistema a finestre grazie all'estensione Tk.

Esempi

modifica

Per un Hello world il codice è

puts "Hello World!"

Semplicissimo esempio di codice:

 puts "dammi un numero"
 gets stdin numero
 puts "Il quadrato è [expr {$numero * $numero}]"

Un altro esempio in stile funzionale:

 proc filter {list script} {
   set res {}
   foreach e $list {
     if {[uplevel 1 $script $e]} {
       lappend res $e
     }
   }
   set res
 }

L'elemento e è incluso nella lista list? Se sì ritorna 1, altrimenti 0.

 
 proc in {list e} {
   expr {[lsearch -exact $list $e] >= 0}
 }

Elementi comuni di due liste, ossia insieme intersezione:

 % filter {a b c} {in {b c d}}
 b c

Tk

modifica

L'estensione Tk è un insieme di strumenti per scrivere GUI (un toolkit di widget) implementato dallo stesso autore di Tcl. Può essere usato anche in combinazione ad altri linguaggi come Perl, Python, Ruby, Lisp e altri, ed è stato portato su varie piattaforme quali GNU/Linux, Apple Macintosh, Unix e Windows.

Esempio Tk, un orologio numerico in tre righe:

 package require Tk
 proc every {ms body} {eval $body; after $ms [info level 0]}
 pack [label .clock -textvar time]
 every 1000 {set ::time [clock format [clock sec] -format %H:%M:%S]}

Note

modifica
  1. ^ (EN) Welcome to the Tcl Developer Xchange!, su Tcl Developer Xchange.
  2. ^ (EN) Tcl vs. TCL, su Tcler's Wiki.
  3. ^ (EN) Features and Benefits, su Tcl Developer Xchange.
  4. ^ (EN) What is Tcl, su sito=Tcler's Wiki.

Bibliografia

modifica
  • (EN) John K. Ousterhout e Ken Jones, Tcl and the Tk Toolkit, 2ª ed., Addison-Wesley, 2010, ISBN 978-0-321-33633-0.
  • (EN) Ashok P. Nadkarni, The Tcl Programming Language: A Comprehensive Guide, 2017, ISBN 978-1548679644.

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
Controllo di autoritàLCCN (ENsh94000154 · GND (DE4361529-6 · J9U (ENHE987007558786705171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Macchina di Turing

simulazione. Indichiamo con Tk la macchina di Turing a k nastri e con T quella ad un nastro. Scriviamo l'input della macchina Tk sulla macchina T ovviamente

Università della California - Berkeley

PostgreSQL, le tecnologie RAID e RISC, Sendmail, SETI@home, SPICE, Tcl e il tool Tk. Berkeley ha stipulato inoltre diversi accordi con Google, Intel, Microsoft

3D Slicer

fornisce un "wrapper" Tcl per dare istanze ed eseguire i suoi metodi. Tcl/Tk comprende il resto dell'interfaccia di 3DSlicer e la gestione degli eventi

Bioinformatica

DOI:10.1109/BIBE.2007.4375536. URL consultato il 3 giugno 2026. ^ Attwood T.K., Gisel A., Eriksson N-E. and Bongcam-Rudloff E., Concepts, Historical Milestones

Antivirus

2012. (EN) Denis Howe, antivirus software, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL CARO - Computer Antivirus Research Organization

Re:Zero - Starting Life in Another World

feat. Ashnikko mentre quella di chiusura è Ender Ember dei Myth & Roid e TK from Ling Tosite Sigure. Durante lo sviluppo della serie di light novel presso

Elmer FEM solver

di CSC – IT Center for Science (formalmente noto come CSC – Scientific Computing), Helsinki University of Technology TKK, il VTT Technical Research Centre

Windows 8

3.0, dischi rigidi Advanced Format, comunicazioni near field e cloud computing. Sono state introdotte funzionalità di sicurezza aggiuntive, come software