La plate-forme logicielle TRAG (écrite en Common Lisp) est centrée sur la notion de terme (arbre). Elle contient plusieurs modules. Le module Autowrite permet de manipuler des termes, des systèmes de réécriture de termes, des automates (finis ou pas) sur les termes. Une des spécificité de cette bibliothèque est d'implémenter des automates programmés. Ces automates sont décrits par la structure de leurs états et par leur fonction de transition représentée par une fonction. Ceci permet d'obtenir des automates ayant une infinité de transitions (un nombre infini d'états et/ou une signature infinie).
Pour l'instant, la seule façon de définir un automate programmé (ou fly-automaton) est d'écrire du code Lisp. On voudrait pouvoir donner à un utilisateur de la plate-forme la possibilité de décrire un automate programmé sans avoir à écrire du code Lisp. Le travail consiste donc à