Incr Tcl

langage de programmation

Incr Tcl est une extension du langage Tcl permettant une sorte de programmation orientée objet. Le nom est un jeu sur C/C++ : en C, ++ est l'opérateur d'incrémentation, ce qui équivaut logiquement à incr en Tcl.

Exemple de programme Incr Tcl

La syntaxe s'inspire, d'une manière générale, de celle de C++.

Concepts

Nous supposons connus les principaux concepts de la programmation orientée-objet.

Le concept-clé est la classe, qui comporte des variables d'instance (variable) et des variables communes à toutes les instances (common). Seule une variable commune peut être définie comme un tableau associatif (array).

Les objets instanciés doivent être explicitement détruits, c'est pourquoi une classe peut comporterun constructeur et un destructeur. Une commande spécifique (itcl::local) permet d'éviter cela en déléguant la destruction de l'objet à la désaffectation de la variable le pointant.

Les méthodes (method) et procédures (proc) contenues dans une classe suivent la syntaxe de la commande proc, et peuvent par conséquent prendre un nombre variable d'arguments. La surcharge de méthodes est en effet possible par ce moyen.

Tous les mots-clés susdits peuvent être précédés des qualificatifs suivants :

  • private
  • protected
  • public

Incr Tcl permet l'héritage multiple, comme en C++ naturellement.

Exemple pratique

package require Itclitcl::class Personne {   private variable nom   private variable prenom   public variable age 18   constructor {vnom vprenom} {      set nom $vnom      set prenom $vprenom      puts "Bienvenue, $prenom $nom!"   }   method coucou {depuis} {      puts "Bonjour à toi, $prenom!"      if {$depuis != ""} {         puts "Nous sommes à $depuis."      }   }   method estMajeur {} {      expr {$age>=18}   }   method nommer {} {      return "$prenom $nom"   }}# instanciationPersonne lj Justard Laurentlj configure -age 16if {[lj estMajeur]} {   puts "[lj nommer] est majeur"}lj coucou "la Côte d'Azur"# Destruction de l'objetitcl::delete object lj#itcl::delete class Personne

Livres

  • (en) Chad Smith and Larry W. Virden, Incr Tcl/Tk from the Ground Up: The Accelerated Track for Professional Programmers, McGraw-Hill Professional Publishing, (ISBN 0-072-12106-8), 1999.

Liens externes