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 |