NASIUM L.S.E.

Généralités

NASIUM L.S.E.

SYSTÈME L.S.E.

LANGAGE SYMBOLIQUE D'ENSEIGNEMENT

Table des généralités :

1. PRESENTATION

Le L.S.E. est un langage de programmation adapté aux besoins de l'enseignement. (C'est à dire aux besoins de l'enseignement dans les années 1970, je ne mets pas d'émoticon car ils n'étaient pas inventés à l'époque). Il fut inventé par l'École Supérieure d'Électricité dans les années 1970. Il fût utilisé par l'enseignement secondaire en France, et également par l'École d'Application des Transmissions de l'Armée.

Ce langage de programmation était utilisé dans 57 lycées de France faisant partie de l'expérience des 57 minis. C'étaient des mini-ordinateurs CII (SEMS) MITRA-15 et Télémécanique T-1600, sur lesquels un environnement et un interpréteur L.S.E. interactifs fonctionnaient, via 8 ou 16 consoles de visualisation et 1 ou 2 télétypes/perforatrices de ruban.

Un compilateur L.S.E. pour ordinateurs CII 10170 et CII IRIS 80 sur les systèmes SIRIS 7 et SIRIS 8 fût également développé et utilisé dans les universités disposant de ces matériels, dont l'utilisation était basée sur les cartes perforées.

Au début des années 1980, ces mini-ordinateurs fûrent submergés par la vague des 10000 micros tels les R2E Micral, et les Logabax, sur lesquels l'environnement L.S.E. et l'interpreteur L.S.E. fûrent portés, (SARL Microdur fondée en 1982 afin de poursuivre le développement de L.S.E., EDL et, plus recemment Logicia), puis même sur les suivants, les compatibles PC, le Macintosh, et des matériels Commodore.

Ces 57 mini-ordinateurs disposaient d'une mémoire centrale de 4 ou 8 kilo-mots, c'est à dire 8192 octets ou 16384 octets, pas kilo-octets, ni même, n'y pensez pas méga-octets. Ce document ne tiendrait pas entierement dans ces mémoires centrales! Les disques durs atteignaient à peine les 256 Ko et les disquettes de 8" les 64 Ko. L'espace de mémoire centrale restant pour stocker les programmes L.S.E. et les données de l'utilisateurs était de l'ordre de 2000 mots (4 ko, 4096 octets ! On pouvait les compter sur ses doigts en binaire, et il restait 8 doigts). Quand à l'espace de disque dur disponible, il se comptait en dizaines de secteurs de 256 octets, pas beaucoup plus. Heureusement, on disposait d'un lecteur de disquettes 8". D'accord, disons plutôt, de galettes souples, de 8 pouce, c'est pas vraiment des disquettes. Leur capacité étant, si je me souviens bien de 40 pistes de 8 secteurs de 128 octets soit 40960 octets en tout (plus que la mémoire centrale).

Et bien entendu, les unités centrales de ces "mini" ordinateurs occupaient la place d'un trés gros réfrigerateur, et nécessitaient une alimentation électrique triphasée.

LSE devrait vous permettre de resentir les joies qu'offraient un tel environnement de programmation. Malgrès tous nos efforts, nous ne réussirons surement pas à vous empêcher de programmer en L.S.E. en évitant les avantages offerts par les méga-systèmes-GUI actuels. Néanmoins, il constitura surement un article de valeur dans le musée historique virtuel des systèmes anciens.

L.S.E. n'est plus un langage "vivant" et il ne me semble pas intéressant d'envisager une implémentation "contemporaine" (voir les versions pour les premiers micro-ordinateurs, avec introduction des miniscules et des graphiques bit-map). Aussi ce projet se limite volontairement au système qui existait sur MITRA-15 avec toutes ses contraintes et limites. Avec cependant quelques modifications afin de l'adapter à l'environnement unix.

Veuillez envoyer vos commentaires, rapports de bogues, suggestions à : Pascal Bourguignon mailto:pjb@ogamita.com

2. B.A.BA

Au lancement de la commande lse, on entre directement dans l'état actif, et la commande AU)REVOIR fait quiter le programme lse et revenir à la coquille (au "shell").

Dans l'état actif, on peut donner:

Les commandes sont données avec leur deux premières lettres. Le système L.S.E. complète la commande (sauf lorsque la commande ABREGER a été donnée) une fois que la saisie des deux lettres est validée.

Les saisies sont validées avec le code X-OFF, c'est a dire, CONTRÔLE-S, pas avec ENTRÉE. Ceci étant dû au fonctionnement des consoles qui acceptent la saisie d'une ligne sans intervention de l'unité centrale. la pression de X-OFF provoque la transmission de la ligne saisie a l'unite centrale.

Les consoles SINTRA fonctionnaient comme une télétype : la saisie (hors ligne) n'était possible que sur la ligne du bas. il n'y avait pas de curseur, la ligne était emplie de soulignés que la saisie recouvrait. L'affichage se faisaient également à partir du bas de l'écran et à la réception d'un saut de ligne ça défilait vers le haut comme le papier de la télétype et sans possibilité de revenir en arrière. lse ne simule pas cette ligne de soulignés et laisse l'emulateur de terminal utilisé afficher un curseur.

Comme la saisie se faisait sans intervention de l'unité centrale, il n'y avait pas moyen de corriger vraiment les caractères saisis (pas d'édition de la ligne de saisie). On peut cependant commander la suppression du ou des caractères précédement saissis en tapant un ou plusieurs caractères contre-cotice :

Taper : BON\\\SALE\UT!

Équivaut à taper : SALUT!

La touche ÉCHAPEMENT (ESC) permet d'interrompre le traitement et revenir à l'invite.

La touche CONTRÔLE-A permet d'envoyer un signal asynchrone qui est lu avec la fonction ATT().

En résumé :

Cependant, on peut sélectionner le mode moderne, dans lequel les touches utilisées sont celles configurées par stty(1), normalement:

Ceci permet de conserver ses habitudes récentes.

Nous avons introduit quelques commandes nouvelles, en particulier :

Exemple de session.

Rappel : les commandes se tapent avec leurs deux premiers caractères et la touche d'entrée (CONTRÔLE-S ou ENTRÉE selon la configuration), lse complétant: B O [X-OFF] --> BONJOUR.

   || = LIGNE AFFICHEE PAR LE SYSTEME. 
    
   >| = LES DEUX PREMIERS CARACTÈRES SONT TAPES PAR L'UTILISATEUR, SUIVIT 
        DE [XOFF] (ET ÉVENTUELLEMENT LE PARAMÈTRE DE LA COMMANDE). 
    
   >> = TOUTE LA LIGNE EST TAPÉE PAR L'UTILISATEUR, TERMINÉE PAR [ENTRÉE] 
    
   |> = AFFICHAGE D'UN MESSAGE PAR LE SYSTÈME, SUIVIT D'UNE SAISIE PAR 
        L'UTILISATEUR TEMINÉE PAR [XOFF]. 
    
    
   ||  NASIUM L.S.E. 
   ||  LANGAGE SYMBOLIQUE D'ENSEIGNEMENT 
   ||  VERSION 1.0.0-0.272-CL-UNIX 
   ||  COPYRIGHT 1984 - 2014 PASCAL BOURGUIGNON 
   ||   
   ||  DISTRIBUE SELON LES TERMES DE LA LICENCE AGPLv3. 
   ||   
   ||  Ce programme est livré avec ABSOLUMENT AUCUNE GARANTIE; pour plus de 
   ||  détails utilisez la commande DO GARANTIE.  Ce logiciel est libre, et 
   ||  vous êtes les bienvenus pour redistribuer sous certaines conditions; 
   ||  utilisez la commande DO LICENSE pour plus de détails. 
   ||   
   ||  Tapez AI pour avoir de l'aide. 
   ||   
   ||  BONJOUR     21:15:40 
   ||   
   ||  PRET 
   ||   
   >>  1*TEST 
   >>  10 AFFICHER 'QUI EST\ TU ? ' 
   >>  20 CHAINE NOM;LIRE NOM 
   >>  30 AFFICHER 'ENCHANTE ',NOM,' !' 
   >>  40 AFFICHER 'N\\NOM,' \, DONNE MOIS\ UN NOMBRE, SIL T \\\\\'IL TE PLAIT : ' 
   >|  LISTER A PARTIR DE 40 
   ||  40 AFFICHER NOM,', DONNE MOI UN NOMBRE, S''IL TE PLAIT : ' 
   >>  50 LIRE N 
   >>  60 AFFICHER '\N,' * 'M\,NM\,' = ',N*N 
   >>  70 AFFICHER 'AU REVOIR '\\M\, ',NOM 
   >>  80 TERMINER 
   >|  LISTER A PARTIR DE 1 
   ||  1*TEST 
   ||  10 AFFICHER 'QUI ES TU ? ' 
   ||  20 CHAINE NOM;LIRE NOM 
   ||  30 AFFICHER 'ENCHANTE ',NOM,' !' 
   ||  40 AFFICHER NOM,', DONNE MOI UN NOMBRE, S''IL TE PLAIT : ' 
   ||  50 LIRE N 
   ||  60 AFFICHER N,' * ',N,' = ',N*N 
   ||  70 AFFICHER 'AU REVOIR, ',NOM 
   ||  80 TERMINER 
   >|  EXECUTER A PARTIR DE 1 
   |>  QUI ES TU ? PASCAL 
   ||  ENCHANTE PASCAL ! 
   |>  PASCAL, DONNE MOI UN NOMBRE, S'IL TE PLAIT : 12 
   ||  12  * 12  = 144  
   >|  AU REVOIR, PASCAL 
   ||  TERMINE 
   ||   
   >|  AU REVOIR  04:09:21 

7. MODE EMACS

Un mode emacs pour l'édition des programmes L.S.E. est fourni avec les sources (voir section LÉGAL, SOURCES).

En particulier, il remplace l'affichage caractère souligné par une flêche gauche (unicode) de l'affectation, et celui du caractère chapeau par une flêche vers le haut (unicode) de la puissance, qui étaient dans le jeu de caractère des systèmes L.S.E.

Les numéros de lignes ont automatiquement insérés par la touche retour, et une commande pour renuméroter est fournie.

Pour l'activer, utiliser la commande emacs:

M-x load-file RET lse-mode.el RET

ou placer dans ~/.emacs:

(require 'lse-mode)

http://www.gnu.org/s/emacs

http://www.emacsformacosx.com/

8. REFERENCES

 "LANGAGE SYMBOLIQUE D'ENSEIGNEMENT L.S.E.  MANUEL D'UTILISATION" 
 BULLETIN DE LIAISON "L'INFORMATIQUE ET L'ENSEIGNEMENT SECONDAIRE" 
 JANVIER 1975 
 C.LAFOND - INSTITUT NATIONAL DE RECHERCHE ET DE DOCUMENTATION PEDAGOGIQUES 
 
 
 "LANGAGE SYMBOLIQUE D'ENSEIGNEMENT LSE 15 - MANUEL D'UTILISATION" 
 ECOLE D'APPLICATION DES TRANSMISSIONS - DIRECTION DE L'INSTRUCTION 
 DIFFUSION INTERNE A DES FINS PEDAGOGIQUES SEULEMENT 
 ARTICLE II MARCHE 78 P 78 
 
 
 "LANGAGE LSE SOUS SIRIS 7 / SIRIS 8 - MANUEL D'UTILISATION" 
 P. FISCHER, P. MERCIER (I.U.C.A) 
 REFERENCE : NOTC0031 MAIS 1978 
 INSTITUT UNIVERSITAIRE DE CALCUL AUTOMATIQUE DE LORRAINE 
 INSTITUT UNIVERSITAIRE DE TECHNOLOGIE (DEPARTEMENT INFORMATIQUE) 
 INSTITUT DE RECHERCHE SUR L'ENSEIGNEMENT DES MATHEMATIQUES. 
 
 
 "L.S.E. POUR TOUS" 
 EPI - ENSEIGNEMENT PUBLIC ET INFORMATIQUE (ASSOC. LOI DE 1901) 
 BULLETIN JANVIER 81 NO.  SPECIAL  - 1ER EDITION - ISBN 2-86469-014-5 - 1981 
 
 
 NORME AFNOR 1982 
 
 
 "L.S.E. POUR TOUS" 
 CENTRE NATIONAL DE DOCUMENTATION PEDAGOGIQUE 
 EPI - ENSEIGNEMENT PUBLIC ET INFORMATIQUE (ASSOC. LOI DE 1901) 
 BROCHURE NO. 42006  - 4E EDITION 1983 
 
 
 "LE SYSTEME LSE - MIEUX CONNAITRE SON FONCTIONNEMENT SUR MICRO-ORDINATEUR" 
 EPI - ENSEIGNEMENT PUBLIC ET INFORMATIQUE (ASSOC. LOI DE 1901) 
 DOSSIER EPI NO. 3 JUIN 89 
 
 
 "La Saga du LSE et de sa famille (LSD/LSG/LST)" 

http://wwwsi.supelec.fr/yn/sagaLSx.html

http://www.epi.asso.fr/revue/54/b54p216.htm

 "LSE83" 
 Jacques Arsac 
 Bulletin de l'EPI n° 38    

http://archive-edutice.ccsd.cnrs.fr/docs/00/03/06/74/PDF/b38p116.pdf

Article Wikipedia sur le L.S.E. :

http://fr.wikipedia.org/wiki/LSE_(langage_de_programmation)