http://www.ensta.fr/~diam/tcl
(avec frames)
Modif le 20/05/2003
Réclamation :
Maurice Diamantini
Une version texte pure sera postée régulièrement sur le forum
francophone dédié à ce langage
fr.comp.lang.tcl
(dès que j'aurai réinstallé mon Hevea :-)
Les principes qui ont dicté sa création par John Ousterhout sont que tout programme suffisamment important utilise au moins deux langages :
TK est la principale extension de TCL. Elle permet de développer des applications à fenêtrage indépendamment de la plateforme (Xwindows / Macintosh / Windows).
TCL est un donc un langage de commande interprété (mais compilé à la volée), multiplatforme, puissant, concu pour être facilement étendu ou inclu dans une application (C, C++, ...).
TCL permet la définition de procédures, de variables globales, locales,
ou dont la portée peut être accessible (de manière controlée) à
des niveaux arbitraires. TCL permet le traitement des exceptions, la
redéfinition (dynamique) des commandes, ...
Sa syntaxe est tirée à la fois du SHELL, du C et du LISP.
La puissance du langage sans extensions est suffisante pour permettre
l'écriture d'application compléte (graphique ou non) sans aucun
extension (serveur http, éditeur de texte ou de dessin, ...)
La syntaxe du langage quelque peu inhabituelle, est basée sur quelques règles trés simples :
La programmation orientée objet est supportée à travers plusieurs
extensions, suivant les qualités recherchées
XOtcl,
itcl
snit,
stooop)
(17juillet03)
Une mention toute particulière est à porter au package
snit,
car, outre
qu'il est une extension écrite en TCL pur et désormais inclue dans la
bibliothèque standard tcllib (comme stooop),
snit respecte parfaitement le type de programmation TCL,
et est basé sur la délégation plutot que sur l'héritage. Ceci permet
en particulier "d'hériter" de "classes" écrites dans d'autres
systèmes de programmation objet, voire non prévues initialement
pour être étendues
(tel que la commande tcl "string" ou toute commande tk telle que
"button" ou "canvas") !.
(16oct02) Il existe egalement des compilateurs, mais un systéme particulièrement intéressant est CriTcl (voir ci dessous : TCL et le C))
(16oct02) Des outils existent pour rendre une application totalement autonome (ne nécessitant plus d'interpréteur extérieur) à partir de scripts ainsi que des compilateurs. Le système le plus intéressant et le plus prometteur et sans doute le systéme TclKit qui représente un environnement d'exécution monofichier. Celui-ci contient à la fois wish, les librairies tcl associées et quelques extensions. Cette application est capable d'interpréter directement un répertoire compressé appelé Starkit. Il est également possible de créer un fichier compressé, directement exécutable et contenant à la fois l'interpréteur et l'application : les starpack !
(16oct02)
Cependant une extension récente (en tcl pur) permet d'intégrer directement
du code C dans du TCL, et de réaliser une compilation à la volée
lors de la première utilisation !
Ce système nécessite bien
entendu de disposer d'un compilateur C sur sa plateforme (sauf si
l'on souhaite distribuer la version précompilée).
Voir
CritLib
(http://www.equi4.com/critlib)
et
CritTcl
(http://mini.net/tcl/critcl)
(29nov04) cpptcl (http://cpptcl.sourceforge.net/) est une extension permettant d'inclure facilement du C++ avec du tcl, Fonctione avec la meta-bibliothèque C++ boost (contenant, entre autre une bibliothèque de graphe)