2. Opérateurs
On distingue fondamentalement trois sortes d'opérateurs :
opérateur d'arité fixe
Un opérateur d'arité fixe est défini par un nombre N fixé de phyla. Toute instance de cet opérateur est alors un nœud qui possède exactement N fils. On note symboliquement :
oper -> PHYL1···PHYLN ;
opérateur de liste
Un tel opérateur est défini par un unique phylum, sachant qu'une instance de cet opérateur est un nœud qui possède un nombre quelconque de fils, chaque fils étant l'instance d'un opérateur appartenant à cet unique phylum. On note symboliquement :
oper -> PHYL*... ;
terminal instanciable
C'est un opérateur d'arité nulle, et qui possède une valeur. Le type de la valeur est fonction du terminal, et n'est pas exprimé au niveau de la syntaxe abstraite. On note symboliquement :
oper -> implemented as PHYL ;
où PHYL désigne un type de valeur prédéfini.