Tcl

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Nota disambigua.svg Disambiguazione – Se stai cercando altri significati, vedi TCL.

In informatica, TCL (acronimo di Tool command language) è un linguaggio di scripting creato da John Ousterhout generalmente considerato di facile apprendimento (rispetto ai linguaggi della sua generazione), ma allo stesso tempo potente. Viene comunemente usato per prototipizzare rapidamente e testare applicazioni interpretate, anche dotate di interfaccia grafica. La pronuncia suggerita per l'acronimo TCL è "tickle".

Caratteristiche[modifica | modifica wikitesto]

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 event-driven 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 | modifica wikitesto]

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 | modifica wikitesto]

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:

 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]}

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

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