Tcl

Da Wikipedia, l'enciclopedia libera.
bussola Disambiguazione – Se stai cercando altre voci che possono riferirsi alla stessa combinazione di 3 caratteri, vedi TCL.
Curly Brackets.svg

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 GUI. La pronuncia suggerita per l'acronimo Tcl è "tickle".

Caratteristiche[modifica | modifica sorgente]

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 una API che permette di collegare all'interprete oggetti scritti in linguaggio 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, ecc.
  • Buona integrazione con il sistema a finestre grazie all'estensione Tk.

Esempi[modifica | modifica sorgente]

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? (ritorna 0 od 1).

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

Elementi comuni di due liste ovvero insieme (intersezione):

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

Tk[modifica | modifica sorgente]

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 ed 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 sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica