Linguaggio

Tcl è un linguaggio di programmazione molto semplice. Se hai programmatoprima, puoi imparare abbastanza per scrivere programmi Tcl interessanti entro poche ore. Questa pagina fornisce una rapida panoramica delle principali caratteristiche di Tcl. Dopo aver letto questo, probabilmente sarai in grado di iniziare a scrivere semplici script Tcl da solo; tuttavia, raccomandiamo di consultare uno dei tanti libri Tcl disponibili per ulteriori informazioni complete.

Sintassi di base

Gli script Tcl sono costituiti da comandi separati da newlinesor punto e virgola., I comandi hanno tutti la stessa forma di base illustratadal seguente esempio:

expr 20 + 10

Questo comando calcola la somma di 20 e 10 e restituisce il risultato, 30.Puoi provare questo esempio e tutti gli altri in questa pagina digitandoli su un’applicazione Tcl come tclsh; dopo il completamento di un comando, tclsh stampa il risultato.

Ogni comando Tcl è composto da una o più parole separate da spazi., In questo esempio ci sono quattro parole: expr,20, + e 10. La firstword è il nome di un comando e le altre parole sono argumentsto quel comando. Tutti i comandi Tcl sono costituiti da parole, ma diversii comandi trattano i loro argomenti in modo diverso.Ilexpr comando tratta tutti itsarguments insieme come un’espressione aritmetica, calcola il risultato di thatexpression, e restituisce il risultato come una stringa., Nel comandoexprla divisione in parole non è significativa: potresti semplicemente aver invocato lo stesso comando di

expr 20+10

Tuttavia, per la maggior parte dei comandi la struttura delle parole è importante, con ogni parola usata per uno scopo distinto.

Tutti i comandi Tcl restituisconorisultati. Se un comando non ha un risultato significativo, restituisce una stringa vuota come risultato.

Variabili

Tcl consente di memorizzare i valori nelle variabili e utilizzare i comandi values laterin. Ilset comando viene utilizzato per scrivere e readvariables., Ad esempio, il seguente comando modifica la variabilex per mantenere il valore 32:

set x 32

Il comando restituisce il nuovo valore della variabile. È possibile leggere il valore di una variabile invocandoset con un solo oggetto:

set x

Non è necessario dichiarare le variabili in Tcl: una variabile viene creata automaticamente la prima volta che viene impostata. Le variabili Tcl non hannotipi: qualsiasi variabile può contenere qualsiasi valore.,

Per utilizzare il valore di una variabile in un comando, utilizzare variablesubstitution come nel seguente esempio:

expr $x*3

Quando un $ compare in un comando, Tcl considera il lettersand cifre seguenti è un nome di variabile, e sostituisce thevalue della variabile al posto del nome. In questo esempio, l’argomento effettivo ricevuto dal comando expr sarà32*3 (supponendo che la variabile x fosse impostata nell’esempio precedente)., È possibile utilizzare la sostituzione variabile in qualsiasi parola di qualsiasi comando, o anche più volte all’interno di una parola:

set cmd exprset x 11$cmd $x*$x

Sostituzione del comando

È anche possibile utilizzare il risultato di un comando in un argomento ad un altro comando. Questo è chiamato sostituzione di comando:

set a 44set b 

Quando un come comando Tcl nidificato.Tcl valuta il comando nidificato e sostituisce il suo risultato inil comando che racchiude al posto del testo tra parentesi., Nell’esempio sopra il secondo argomento del secondo comando set sarà 176.

Virgolette e parentesi

Le virgolette doppie consentono di specificare parole che contengono spazi. Per esempio, considera il seguente script:

set x 24set y 18set z "$x + $y is "

Dopo che questi tre comandi sono stati valutati la variabilez avrà il valore24 + 18 is 42. Tutto tra le quoteè passato al comandoset come una singola parola., Si noti che (a) le sostituzioni di comando e variabile vengono eseguite sul testo tra le virgolette e (b) le virgolette stesse non vengono passate al comando.Se le virgolette non fossero presenti, il comandoset avrebbericevuto 6 argomenti, che avrebbero causato un errore.

Le parentesi graffe forniscono un altro modo di raggruppare le informazioni in parole.,Sono diversi dalle virgolette in quanto non vengono eseguite sostituzionisul testo tra le parentesi graffe:

set z {$x + $y is }

Questo comando imposta la variabilezal valore”$x + $y is “.

Strutture di controllo

Tcl fornisce un set completo di strutture di controllo tra cui commandsfor esecuzione condizionale, looping, e le procedure. Tcl controlstructures sono solo comandi che prendono gli script Tcl come argomenti.,L’esempio seguente crea una procedura Tcl chiamata power, che genera una base a una potenza intera:

proc power {base p} { set result 1 while {$p > 0} { set result set p } return $result}

Questo script è costituito da un singolo comando, proc. Il comandoproc accetta tre argomenti: il nome di una procedura,un elenco di nomi di argomenti e il corpo della procedura, che è uno script Tcl. Si noti che tutto tra la parentesi graffa alla fine della prima riga e la parentesi graffa sull’ultima riga viene passato a proc come un singolo argomento., Il comandoproccrea un nuovo comando Tcl denominatopower che accetta due argomenti. È quindi possibile richiamarepower con comandicome il seguente:

power 2 6power 1.15 5

Quando viene richiamatopower, viene valutato il corpo della procedura.Mentre il corpo è in esecuzione può accedere ai suoi argomenti come variabili: basemanterrà il primo argomento e p manterrà il secondo.,

Il corpo della procedura power contiene tre comandi Tcl:set, while e return. Il comandowhile esegue la maggior parte del lavoro del procedure.It accetta due argomenti, un’espressione ($p > 0) e abody, che è un altro script Tcl. Il comandowhile valuta il suo argomento di espressione usando regole simili a quelle del linguaggio di programmazione C e se il risultato è vero (diverso da zero) thenit valuta il corpo come uno script Tcl., Ripete questo processo oltre andover fino a quando alla fine l’espressione restituisce false (zero). In questo casoil corpo del comando while ha moltiplicato il valore del resultoper base e quindi decrementa p. Quandop raggiunge lo zero il risultato contiene la potenza desiderata dibase. Il comando return causa l’uscita della procedura con il valore della variabile result come risultato della procedura.

Da dove vengono i comandi?,

Come hai visto, tutte le caratteristiche interessanti in Tcl sonorappresentate dai comandi. Le istruzioni sono comandi, le espressioni sono valutate eseguendo comandi,le strutture di controllo sono comandi e le procedure sono comandi.

I comandi Tcl vengono creati in tre modi. Un gruppo di comandiè fornito dall’interprete Tcl stesso. Questi comandi sono chiamaticomandi di costruzione. Includono tutti i comandi che hai visto finora e molti altri (vedi sotto). I comandi incorporati sono presenti in tutte le applicazioni Tcl.

Il secondo gruppo di comandi viene creato utilizzando Tcl extensionmechanism., Tcl fornisce API che consentono di creare un nuovo comandoscrivendo una procedura di comando in C o C++ che implementail comando. Si registra quindi la procedura di comando con l’interprete theTcl dicendo a Tcl il nome del comando che implementa theprocedure. In futuro, ogni volta che quel particolare nome viene utilizzato per un comando Tcl, Tcl chiamerà la procedura di comando per eseguire il comando. I comandi incorporati sono implementati anche usando questo stesso meccanismo di estensione; le loro procedure di comando sono simplypart della libreria Tcl.,

Quando Tcl viene utilizzato all’interno di un’applicazione, l’applicazione incorpora le sue caratteristiche chiave in Tcl utilizzando il meccanismo di estensione. Pertanto il set di comandi Tcl disponibili varia da applicazione a applicazione.Ci sono anche numerosi pacchetti di estensione che possono essere incorporatiin qualsiasi applicazione Tcl. Una delle estensioni più note è Tk, che fornisce potenti funzionalità per la creazione di interfacce utente grafiche. Altre estensioni forniscono programmazione orientata agli oggetti, l’accesso al database,più funzionalità grafiche, e una varietà di altre caratteristiche., Uno dei vantaggi più grandi di Tcl per la creazione di applicazioni di integrazione è la possibilità con cui può essere esteso per incorporare nuove funzionalità o comunicare con altre risorse.

Il terzo gruppo di comandi è costituito da procedure create con il comando proc, come il comando powercreato sopra. In genere, le estensioni vengono utilizzate per funzioni di livello inferiore in cui la programmazione C è conveniente e vengono utilizzate procedure per funzioni di livello superiore in cui è più facile scrivere in Tcl.,

Altre caratteristiche

Tcl contiene molti altri comandi oltre a quelli usati negli esempi precedenti. Ecco un campionatore di alcune delle funzionalità fornite dai comandi Tcl incorporati:

  • Altre strutture di controllo, come if, for,foreach e switch.
  • Manipolazione delle stringhe, inclusa una potente funzione di expressionmatching regolare. Le stringhe di lunghezza arbitraria possono essere passate in giroe manipolate con la stessa facilità dei numeri.,
  • I / O, compresi i file su disco, prese di rete, e dispositivi suchas porte seriali. Tcl offre servizi particolarmente semplici percomunicazione del portafoglio su Internet.
  • Gestione dei file: Tcl fornisce diversi comandi per manipolare i nomi dei file, leggere e scrivere attributi di file,copiare file, eliminare file, creare directory e così via.
  • Invocazione di sottoprocesso: è possibile eseguire altre applicazioni con il comandoexec e comunicare con esse durante l’esecuzione.,
  • Elenchi: Tcl semplifica la creazione di raccolte di valori (elenchi)e la loro manipolazione in vari modi.
  • Array: è possibile creare valori strutturati costituiti da name-valuepairs con valori di stringa arbitrari per i nomi e i valori.
  • Manipolazione di data e ora.
  • Eventi: Tcl consente agli script di attendere che si verifichino determinati eventi, come un tempo trascorso o la disponibilità di dati di input su un socket di rete.,

Esempi

  • Un semplice strumento da riga di comando
  • Un semplice server di rete

Tutorial

Hai un po ‘di tempo per approfondire un po’ la lingua?Il Tutorialis Tcl un ottimo modo per saperne di più sui vari comandi di Tcl andlanguage caratteristiche.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *