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
3.4.1. le langage LTR3
3.4.2. l'atelier ENTREPRISE
3.4.3. Apport d'un éditeur structuré
3.4.4. La généricité
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

le langage LTR3

LTR3 est dans sa forme très largement inspiré du langage Pascal. On y trouve les déclarations de variables, de types, de constantes, les procédures et les fonctions, les instructions à structure de bloc. LTR3 étant bien sûr postérieur à Pascal (années 80), divers inconvénients propres à ce dernier ont été évités :

LTR3 introduit la notion d'exception : déclaration, signalisation et traitement d'exception permettent de gérer dans le texte du programme les situations exceptionnelles, soit prévisibles (les exceptions prédéfinies) soit redoutées (les exceptions utilisateur). On notera que la notion, d'introduction récente, a presque aussitôt suggéré à certains une programmation systématique par exceptions [BBG 85] ; ce point de vue me paraît un peu dangereux, puisque alors l'occurrence vraie d'une exception est indécelable – s'agit-il d'un cas "normal" d'exception, ou d'un cas réellement exceptionnel ? on appauvrit considérablement la notion, qui n'est plus le traitement, dans le texte du programme, des cas d'erreur, mais un traitement "un peu particulier" présenté dans une syntaxe "un peu particulière".

Un des traits essentiels du langage est la modularité. Elle se présente sous deux aspects :

On trouve aussi la notion de type opaque, qui permet de construire, dans un module, un type abstrait de données ; la simplicité de définition du type opaque rend cependant son usage assez limité.

Mais LTR3 est aussi un langage Temps Réel (version 3). Les aspects du Temps Réel sont définis dans le langage et non introduits en supplément du langage. LTR3 connaît la notion de tâches immédiates – les interruptions – et de tâches différées – avec une priorité à la création des tâches. La synchronisation est réalisée par divers outils : des types prédéfinis ressource, événement, événement impulsionnel, des sections critiques, ... On observe un certain panachage entre les concepts de base du langage, introduits par des mots-clés, et les concepts prédéfinis, ce qui laisse à penser qu'il serait difficile de compléter ou d'améliorer les notions de base de la synchronisation entre tâches. Ces notions sont cependant suffisamment communes et générales pour que l'inconvénient ne paraisse pas trop majeur.

Le dernier point concerne les entrées/sorties. Elles sont standards ou formatées. Les entrées/sorties standards traitent des fichiers, dont on peut regretter qu'il s'agisse uniquement de fichiers séquentiels. Les entrées/sorties formatées permettent un dialogue à l'écran – READ et WRITE. On ne peut pas directement accéder aux adresses physiques de la machine, ce qui est malheureusement un peu limitatif.