afficher >><< masquer ]
SAMPI - Editeur structuré
1. Le Problème et la Proposition
2. Le Langage Primitif de Représentation Textuelle
2.1. Présentation de la Syntaxe Concrète
2.2. Notations
2.3. Exemple de structuration des données
2.4. Exemple de structuration des traitements
2.5. Exemple de structurations connexes
3. Le Langage Complété pour la Structuration des Textes
3.1. Présentation de la Syntaxe Complétée
3.2. Etude quantitative de l'évolution des programmes
3.3. L'édition syntaxique
3.4. étude de cas : le langage LTR3 et l'atelier ENTREPRISE
4. L'Enrichissement du Langage par de Nouveaux Concepts
4.1. Présentation de la Syntaxe Abstraite
4.2. Les difficultés
4.3. Compléter la Syntaxe
5. La Formalisation des Solutions Techniques
5.1. L'évaluation fonctionnelle
5.2. La structuration par les objets
5.3. Modèle sémantique comparé de l'évaluateur
5.4. Comparaison critique
5.5. Construction de la Syntaxe Abstraite
6. Les Comparaisons avec d'autres Approches
7. Les Perspectives
8. Les Editeurs
8.0. brisé sur la barrière de la complexité (une fois de plus)
8.1. L'éditeur ligne : Manuel de l'utilisateur
8.2. L'éditeur page : Guide de l'utilisateur
9. Les Aspects d'Implantation
9.1. Contexte d'évaluation
9.1.0. Introduction
9.1.1. Modularité
9.1.2. Encapsulation
9.1.3. Paramètre
9.1.4. Emploi par référence
9.1.5. Exemples d'application
9.1.6. Héritage de propriétés
9.1.7. Polymorphisme
9.1.77.1. Exemples d'évaluation
9.1.77.2. Solution retenue
9.1.77.3. Liens avec l'environnement local
9.1.77.4. Polymorphisme
9.1.77.5. Bouclage de l'évaluation
9.1.8. Manipulation symbolique
9.1.9. Le contexte d'évaluation
9.2. La Syntaxe Abstraite : Manuel du concepteur
9.3. L'éditeur page : Guide de l'implanteur
Références
Rubrique Perl-Javascript

Polymorphisme

Un sujet qui n'a pas encore été abordé concerne le contexte dans lequel on évalue une référence à un texte. La réponse n'est pas forcément simple. En effet, une référence évaluée enrichit le contexte d'évaluation : faut-il alors évaluer cette référence dans le contexte enrichi, ou faut-il évaluer la référence dans le contexte dans le contexte initial puis enrichir le contexte ?

Référence à évaluer :

référence à évaluer

Référence évaluée = nouveau contexte :

référence à évaluer

1. Exemples d'évaluation

2. Solution retenue

3. Liens avec l'environnement local

4. Polymorphisme

5. Bouclage de l'évaluation

5. Bouclage de l'évaluation

Puisque l'environnement est en partie évalué sur lui-même, on peut observer, assez facilement, un bouclage infini de l'évaluateur de texte. Par exemple :

def a           def b
   def x           def y
   ref b           ref a

l'évaluation de a ou b bouclera nécessairement. On peut regretter un peu la chose, puisque l'exemple présenté admet une interprétation "intuitive" simple.

On pourrait alors prévoir, en cours d'évaluation, de vérifier qu'on n'évalue pas deux fois le même texte : dans un tel cas, on détecte alors un bouclage possible et on interrompt l'évaluation. Ceci est en fait trop restrictif comme le montre l'exemple qui suit :

Exemple de double évaluation
légende
référence à un texte  référence évaluée
environnement de référence  environnement évalué

On évalue l'environnement de y. Le texte x défini en premier est évalué deux fois, et pourtant le processus d'évaluation s'arrête.

On pourrait donc ici encore prévoir l'envoi d'un message de mise en garde qui permettrait à l'utilisateur d'interrompre l'évaluation s'il le souhaite.