Sommaire Carte Index Recherche Nouvelles Archives Liens A propos
[Barre Superieure]
[Barre Inferieure]
[Brent B. Welch]
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:

  1. Introduction � la syntaxe de Tcl
  2. Un petit Exemple
  3. Groupement et Substitution
  4. Autre Exemple
  5. Execution de la Commande
  6. Un dernier exemple
  7. Pour plus d'information

La syntax du langage Tcl

[Ilustration]

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.



 

Introduction � la syntaxe de Tcl

Pour un langage scriptique, Tcl a une syntaxe tr�s simple.

cmd arg arg arg
Une commande Tcl est form�e de mots s�par�s par des espaces. Le premier mot est le nom de la commande, et le reste sont les arguments de cette commande.
$toto
Le caract�re ($) indique que l'on veut la valeur de la variable. Dans cet exemple, le nom de la variable est toto. La chaine $toto sera substitu�e par la valeur de la variable toto.
[clock seconds]
La chaine entre crochets sera remplac�e par le r�sultat de la commande � l'interieur de ces derniers. Par exemple, si vous voulez passer � une commande le r�sultat d'une autre en argument utilisez cette syntaxe. Ici la commande est "clock seconds", qui donne le temps actuel en secondes.
"some stuff"
Les guillemets marquent un groupe de mots qui sera consid�r� comme un et un seul argument pour une commande. Le caract�re dollar et les crochets seront interpr�t�s � l'int�rieur des guillemets.
{some stuff}
De même, les accolades marquent un groupe de mots, cependant les mots � l'interieur ne seront pas interpr�t�s.
\
Le backslash (\) est utilis� pour obtenir des caract�res speciaux. Par exemple, \n donnera un retour � la ligne. La backslash est aussi utilis� pour desactiver le sens de certains caract�res sp�ciaux du langage Tcl, comme le dollar, l'accolade, le crochet, le guillemet.
 

Un petit Exemple

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

 

Groupement et Substitution

La syntaxe de Tcl est interpr�t� en trois phases: Regroupement des arguments, substitution, et execution de la commande.

La syntaxe de Tcl est interpr�t� en trois phases: Regroupement des arguments, substitution, et execution de la commande.

  1. Regroupement des arguments . Tcl doit d�terminer quels sont les arguments � passer � la commande. Dans le cas trivial, des espaces d�limitent les arguments. Comme nous l'avons fait remarquer tout � l'heure, il y a des caract�res sp�ciaux permettant de regrouper plusieurs mots en un seul argument. Dans l'exemple pr�c�dent, les guillemets �taient utilis�s pour regrouper les mots � l'int�rieur d'un seul argument pour la commande puts.

  2. Substitution. Apres le regroupement des arguments, Tcl effectue une substitution de chaine de caract�res. Plus simplement, il remplace $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.

  3. Execution de la Command . Apr�s la substitution, Tcl utilise le nom de la commande comme une cl� pour acceder � celle ci dans une table de commande. Tcl execute alors une fonction interne �crite en C indiqu�e par la cl� dans la table Vous pouvez aussi �crire vos propres commandes Tcl. Il y a une API tr�s simple pour le passage des arguments ainsi que pour la gestion des erreurs.
 

Autre Exemple

Voici un autre exemple:

set i 0 while {$i < 10} { puts "$i squared = [expr $i*$i]" incr i }

Ici, les accolades permettent de regrouper les expressions internes � celles-ci sans qu'elles soient interpr�t�es. La commande 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.  

Execution de la Commande

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.  

Un dernier exemple

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


 

Pour plus d'information

Un grand merci � Brent Welch. et � scriptics
Site Web maintenu par l´équipe d´édition LinuxFocus
© Brent B. Welch
LinuxFocus 1999