1. L'objectif
2. La réponse
4. L'état de la science dans le domaine
6. Le choix de la Représentation Interne
8. La référence
Pour spécifier la Représentation Interne (R.I.) on a défini un Langage de Construction de Langage (LCL). Ce langage est bien à différencier d'un Langage de Description de Langage (LDL) tel qu'on en trouve classiquement dans un éditeur syntaxique. Un LDL permet de définir les opérateurs et les phyla d'un langage, avec de plus ou moins riches compléments sémantiques. Mais le schéma traditionnel d'un tel langage :
-> édition d'un programme en LDL
-> compilation
-> interprétation du code objet (c'est-à-dire session sous l'éditeur syntaxique)
ne permet pas de retour immédiat au source LDL initial. On peut cependant noter que l'étape de compilation permet d'assurer un grand nombre de contrôles concernant le bien-fondé de la syntaxe définie.
Le LCL à l'opposé n'offre guère de contrôles de cohérence mais il permet une interprétation du texte qui définit le langage, c'est-à-dire une construction incrémentale de la syntaxe du langage édité.
La différence porte donc plutôt sur la mise en œuvre du langage que sur le langage lui-même ; mais l'une entraîne l'autre puisqu'on adopte une représentation « graphique » et non syntaxique des concepts des langages utilisés, ce qui nécessite alors une grande simplicité des notions introduites – afin d'éviter une trop importante diversité des formes graphiques définies.
Au départ, on définit les deux opérateurs principaux :
def <nom> <rep><nom> de représentation <rep> : <rep> est le schéma de décompilation de cet opérateur.use <nom><nom>, s'il existe.Un opérateur d'arité non nulle est une définition de texte def pour laquelle on trouve dans sa représentation des utilisations d'opérateurs use.
Comment va travailler l'éditeur ? il évalue les termes du langage (LCL). Une définition est évaluée identiquement à elle-même. Pour une utilisation d'un nom <nom>, on commencera par chercher une définition du nom <nom> : si on en trouve une, alors l'utilisation sera « visuellement » remplacée par la représentation associée ; si on n'en trouve pas, un affichage spécifique indiquera à l'utilisateur l'absence d'une définition visible de cet opérateur. « Visuellement » signifie qu'un outil interactif doit afficher à l'écran la forme décompilée des arbres syntaxiques manipulés, même si dans sa R.I. il ne conserve pas le texte affiché mais le nom de l'opérateur utilisé.
La notion de « recherche de définition » introduit celle de « contexte d'évaluation » : s'il faut rechercher, où la rechercher ? Pour cela on s'inspire des mécanismes utilisés dans les langages à structure de bloc.
Une définition se présente en fait sous la forme :
def <nom> <env> <rep><env> est l'environnement des « définitions locales » de l'opérateur <nom> : on y trouve d'autres définitions def.La recherche d'un opérateur <nom> s'effectue alors en construisant le contexte d'évaluation relatif à l'utilisation, puis en recherchant, dans l'ordre des environnements, la première définition de nom <nom>.
Par exemple :
def txt1
env: def a
env: def u
def v
rep: ...
def b
...
rep: ...
def txt2
...
def txt3
...
Dans la représentation de u, une utilisation de nom sera recherchée dans le contexte :

Au sommet on a alors l'« environnement global » qui est la liste de tous les opérateurs globalement définis, ou encore de tous les tampons en cours d'édition sous l'éditeur.