Brent B. Welch L´auteur: Brent Welch s'amuse � construire le site web www.scriptics.com, et � y inclure une base de donn�e comment�e des URL relatifs � Tcl (Le centre de Ressources Tcl) et une infrastructure de commerce �lectronique pour le produit TclPro. Il a aussi �crit plusieurs grosses applications en Tcl/Tk parmi lesquelles le serveur web TclHttpd web server, qui supporte www.scriptics.com, l'interface utilisateur de Exmh et l'�diteur HTML webtk. Il est l'auteur du livre "Programmation pratique en Tcl et Tk". B. Welch � re�u un diplome d'ing�nieur en A�ronautique de l'Universit� de Boulder au Colorado en 1982, un Master et un PhD en Informatique de l'universit� de Berkley en Californie en 1986 et 1990. Auparavant, il �tait un membre du personnel de recherche au PARC Xerox et travaillait sur les syst�mes distribu�, avant d'être un membre de l'�quipe Tcl/Tk des laboratoires de Sun Microsystems. Il est aussi membre de l'ACM et de l'IEEE Computer Society. Page Personelle: http://www.beedub.com/ Sommaire: |
Résumé:
Cet article explique les concepts de base du langage Tcl ainsi que la syntaxe de ce dernier. Vous verrez que n'importe qui peut programmer avec ce langage reposant sur une logique simple. Vous comprendrez aussi pourquoi celui-ci est extensible � l'infini.
Pour un langage scriptique, Tcl a une syntaxe tr�s simple.
cmd arg arg arg
$toto
toto
.
La chaine $toto sera substitu�e par la valeur de la variable toto.
[clock seconds]
"some stuff"
{some stuff}
\
Ci dessous, un petit exemple de commande Tcl qui affiche l'heure actuelle.
Trois commandes Tcl sont utilis�es:
set
, clock
, et puts
. La commande
set
definit et assigne une valeur � une variable. La commande
clock
permet de manipuler le temps.
La commande puts
affiche des valeurs.
set seconds [clock seconds] puts "The time is [clock format $seconds]"
Note:
Vous remarquerez qu'il ne faut pas utiliser $ quand on affecte une valeur � une variable.
Utilisez $ uniquement lorsque vous voulez la valeur d'une variable.
La variable seconds
n'est pas obligatoire dans le pr�c�dent exemple.
Vous pouvez afficher l'heure courante par une commande:
puts "L'heure courante est [clock format [clock seconds]]"
|
La syntaxe de Tcl est interpr�t� en trois phases: Regroupement des arguments, substitution, et execution de la commande.
puts
.
$foo
par la valeur de la variable foo
,
et remplace les commandes entre crochets par le r�sultat de ces derni�res.
Le fait que la substitution soit faite
apr�s le regroupement est crucial.
Cette s�quence garantie que des valeurs inhabituelles neccompliquent pas
la structure de la commande.
Voici un autre exemple:
Ici, les accolades permettent de regrouper les expressions internes � celles-ci sans qu'elles soient interpr�t�es. La commandeset i 0 while {$i < 10} { puts "$i squared = [expr $i*$i]" incr i }
while
n'est pas une commande sp�ciale du langage Tcl.
Elle est trait�e comme n'importe qu'elle autre commande.
L'impl�mentation de la commande
while
requiert comme premier argument une expression, et comme second
argument des commandes Tcl.
Donc deux arguments:
une expression bool�enne qui contrôle l'arrêt de la boucle et les
commandes � executer dans cette boucle.
Nous avons aussi deux expressions math�matiques:
la comparaison bool�enne et la multiplication.
La commande while �value automatiquement son premier argument comme une
expression.
Dans les autres cas, vous devez utiliser la commande
expr
pour executer une expression math�matique.
A la fin, Tcl appelle quelque chose d'autre pour faire le gros du travail.
Nous avons vu que Tcl utilise
expr
pour les fonctions math�matiques, puts
pour g�rer
les fonctions de sortie
, et set
pour assigner les variables. Ces commandes Tcl
sont impl�ment�es par des fonctions C et sont enregistr�es dans le langage Tcl.
Les fonctions C re�oivent comme arguments des chaines de caract�res via Tcl
et retournent leur r�sultat en chaine de caract�res.
Il est tr�s facile d'�crire des fonctions C pour Tcl.
Elles peuvent faire �normement de choses (cela va d'un acc�s � une
base de donn�es, � cr�er une interface homme-machine.
Tcl, le langage n'a pas de connaissance intrins�que de ce que font les
commandes.
Il regroupe juste les arguments, fait des subtitutions et execute des commandes.
Voici la fonction factorielle:
proc fac {x} { if {$x <= 0} { error "Invalid argument $x: il doit être positif" } elseif {$x == 1} { return 1 } else { return [expr $x * [fac [expr $x-1]]] } }
Site Web maintenu par l´équipe d´édition LinuxFocus
© Brent B. Welch LinuxFocus 1999 |