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.3.1. Présentation générale
2.3.2. Présentation détaillée
2.3.3. Première étape : le modèle générique
2.3.4. Deuxième étape : les nouveaux cas
2.3.5. Annexe 1 : exemple d'évaluation
2.3.6. Annexe 2 : les procédures de recherche
2.3.7. Annexe 3 : la représentation textuelle
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.2. La Syntaxe Abstraite : Manuel du concepteur
9.3. L'éditeur page : Guide de l'implanteur
Références
Rubrique Perl-Javascript

Annexe 3 : la représentation textuelle

Les contextes

ctx1

(def ctx1
   ((def NOM () ("1"))
    (def RANG
       ((def borne () ("LM1"))
        (def RGPHY () ("H"))
        (def CONV-RGLOG () ("RG1({RGLOG})"))
        (def NUM-LOG () ("1"))
        (ref fic ((comm)))))
    (def OBJ
       ((def val
           ((def test () ("X1C")))
           ("X1"))
        (def aux
           ((def test () ("Y1C")))
           ("Y1"))))))

ctx2

(def ctx2
   ((def NOM () ("2"))
    (def RANG
       ((def borne () ("LM2"))
        (def CONV-RGLOG () ("TX2({RGLOG})"))
        (ref tab ((comm)))))
    (def OBJ
       ((def val
           ((def test () ("{val}")))
           ("X2"))
        (def aux
           ((def test () ("{val}")))
           ("Y2"))))))

ctx3

(def ctx3
   ((def NOM () ("3"))
    (def RANG
       ((def borne () ("LM3({CLE-LOG})"))
        (def RGPHY () ("H"))
        (def CONV-RGLOG () ("RG3({RGLOG})"))
        (def NUM-LOG () ("3"))
        (ref fic ((comm)))))
    (def OBJ
       ((def val
           ((def cle () ("X3NB"))
            (def test () ("X3C")))
           ("X3"))
        (def aux
           ((def cle () ("Y3NB"))
            (def test () ("Y3C")))
           ("Y3"))))))

ctx4

(def ctx4
   ((def NOM () ("4"))
    (def RANG
       ((def borne () ("LM4"))
        (def RGPHY () ("H"))
        (def CONV-RGLOG () ("RG4({RGLOG})"))
        (def NUM-LOG () ("4"))
        (ref fic ((comm)))))
    (def OBJ
       ((def val
           ((def test1 () ("X4C1"))
            (def test2 () ("X4C2"))
            (def test3 () ("X4C3")))
           ("X4"))
        (def aux
           ((def test1 () ("Y3C1"))
            (def test2 () ("Y3C2"))
            (def test3 () ("Y4C3")))
           ("Y4"))))))

La recherche générique

(def Rechercher
   ((def schema
       ((def fin ()
           ("MEN={CR}
             RETURN")))
       ("140   {CLE}={CLE-ORIGINE}
         145   IF {CLE}={CLE-MAX} GOTO 147
               {CLE}={CLE}+1
               {lect ((RANG)
                      (def RGLOG () ("{CLE}"))
                      (def VAL   () ("{aux((OBJ))}")))}
               {proc-test}
               {fin ((def CR () ("0")))}
         147   {CLE}={CLE}+1
         148   {fin ((def CR () ("1")))}"))
    (def proc-test ()
       ("IF {test-aux}<{test-val} GOTO 145
         IF {test-aux}>{test-val} GOTO 148
         {suite}"))
    (def test-val () ("{test((val((OBJ))))}"))
    (def test-aux () ("{test((aux((OBJ))))}"))
    (def suite () ())
    (def CLE-ORIGINE () ("0"))
    (def CLE-MAX () ("{borne((RANG))}"))
    (def CLE () ("M"))))

Les recherches contextuelles

rech1

(schema
   ((ctx1)
    (Rechercher)))

rech2

(schema
   ((ctx2)
    (Rechercher)))

rech3

(schema
   ((ctx3)
    (def CLE-ORIGINE ()
       ("{borne
            ((def CLE-LOG () ({cle((val((OBJ))))}-64)))}"))
    (def CLE-MAX ()
       ("{borne
            ((def CLE-LOG () ({cle((val((OBJ))))}-63)))}"))
    (Rechercher)))

rech4

(schema
   ((ctx4)
    (def test-val () ("{test1((val((OBJ))))}"))
    (def test-aux () ("{test1((aux((OBJ))))}"))
    (def suite ()
       ("{proc-test
            ((def test-val () ("{test2((val((OBJ))))}"))
             (def test-aux () ("{test2((aux((OBJ))))}"))
             (def suite ()
                ("{proc-test
                     ((def test-val () ("{test3((val((OBJ))))}"))
                      (def test-aux () ("{test3((aux((OBJ))))}"))
                      (def suite () ())))}")))}"))
    (Rechercher)))