GDeLTK

TCL/TK

Notepad++

Wine

Linux

XML

FOP

Guitare

Voyages?

Citations

Reste à faire

edit SideBar


Tcl est l'abréviation de Tool Command Language. C'est un langage de script initialement conçu en 1988 par John Ousterhout et son équipe à l'université de Berkeley. Il s'inspire principalement des langages C, Lisp, Shell et Awk. Ce langage à typage dynamique est multiplate-forme, extensible, facile à apprendre et repose sur onze règles syntaxiques. Tcl s'interface très aisément avec le langage C, ce qui lui permet de servir par exemple d'interprète embarqué dans des applications.

Caractéristiques :

  • Tcl est un langage de script comme Python, Perl, Lua et d'autres
  • Tk est une interface graphique qui a été aussi liée à Python, Perl, Scheme...
  • Depuis la version 8.0 Tcl est compilé à la volée
  • A la différence de Perl, cette compilation peu aussi intervenir suivant le besoin après le démarrage
  • A la différence de Python, le résultat de la compilation n'est pas sauvé dans un fichier
  • Les versions 8.x de Tcl s'exécutent sur beaucoup de systèmes UNIX, sous Windows 9X/NT, sous Mac (NDT : sous Linux)
  • Depuis la version 8.1 Tcl utilise le codage Unicode
  • Tcl/Tk est disponible librement, y compris son source, sous une licence de type BSD
  • Tcl est économe en mémoire vive.
  • Tout est une chaîne de caractères (traduction littérale de everything is a string) : même le code définissant une procédure peut être manipulé comme une chaîne.
  • Tout est une commande : même les instructions comme if ou while sont des commandes, et ne relèvent aucunement de la syntaxe du langage.
  • Toutes les commandes, (y compris l'affectation de variables) peuvent être surchargées.
  • Les expressions mathématiques sont évaluées par une commande spéciale, avec une syntaxe inspirée du C.
  • Les listes imbriquées sont l'un des types de base du langage, et permettent une programmation fonctionnelle très concise. La syntaxe devient alors proche de la notation préfixée.
  • L'introspection de l'interprète permet d'accéder à toute la pile d'exécution, et d'exécuter des commandes à un niveau supérieur (dans la pile).
  • Il est possible de définir des actions à déclencher sur la lecture ou écriture d'une variable, ainsi que sur l'appel d'une procédure.
  • Il est possible de définir de nouvelles structures de contrôle (do .. until par exemple) en quelques lignes.
  • Les chaînes de caractères respectent la norme Unicode, et des commandes permettent de convertir des chaînes entre différents codages.
  • Gestion des sockets multiplate-forme, aussi bien côté client que côté serveur.
  • Recherche et substitution d'expressions régulières.
  • Intégration aisée de code natif C, C++ et Java.
  • Aucune programmation orientée-objet dans le cœur du langage, mais de nombreuses extensions permettent cette approche, même sans ajouter de code natif.