- Lse (langage de programmation)
-
LSE (langage de programmation)
LSE est un langage de programmation conçu à Supélec au début des années 1970 avec des visées pédagogiques.
Sommaire
Histoire
LSE est le résultat d'une évolution d'un langage plus ancien, le LSD, conçu lui aussi à Supélec[1].
Son sigle avait initialement deux significations :
- Langage Symbolique d'Enseignement,
- Langage de Sup-Élec,
auxquelles sont venues se joindre, parmi bien d'autres
- Langage Simple à Enseigner,
- Langage Sans Espoir
LSE doit sa diffusion à sa mise à disposition par le ministère de l'Éducation nationale français sur les ordinateurs destinés aux lycées, jusqu'à l'arrivée des PC et compatibles, lesquels n'en ont pas été équipés. Le langage d'origine supportait les procédures (contrairement au BASIC).
Le langage a été révisé en 1983 par Jacques Arsac[2], pour enfin intégrer la notion de boucle explicite indispensable à tout bonne programmation structurée, et se débarrasser définitivement de son «ALLER EN»(goto). À noter, l'introduction des exceptions.
Cela n'a pas empêché LSE de sombrer rapidement dans l'oubli suite à l'abandon de celui-ci par le gouvernement français. Il existe cependant une petite communauté d'utilisateurs et le langage a fait l'objet d'une révision proposé par Luc Goulet[3] qui reprend en bonne partie les propositions de 1983 et inclut des améliorations. Notamment elle ajoute au langage la prise en charge de la programmation orientée objet et aspect.
Aspects politiques ?
En fait, les ambitions pédagogiques annoncées n'étaient pas sans arrières-pensées politiques sur la place de la France (et de son industrie informatique) dans le monde, comme le montre le texte suivant[4], remis au Ministère en 1982 par l'EPI (association d'enseignants en informatique) :
« Le LSE doit être, pour l'instant, conservé.
Il est totalement maîtrisé dans son évolution par les enseignants eux-mêmes. Il est apte, par sa normalisation actuelle comme par ses développements en cours (graphique) à répondre aux besoins dans tous les ordres d'enseignement. Il peut être amélioré (Bulletin n° 26, p. 14). Son vocabulaire et sa syntaxe française constituent un argument décisif dès lors que l'introduction de l'informatique est réalisée dans les collèges, les écoles et la formation permanente. Il est urgent de se préoccuper d'installer le LSE sur les micro-ordinateurs français destinés au grand public. (l'EPI a pris des contacts avec la CAMIF et THOMSON à ce sujet).
Ainsi la France est en mesure de fournir un modèle complet d'introduction de l'informatique dans l'éducation. Ce modèle peut être un des éléments permettant de retrouver le rôle culturel qu'elle a perdu dans de nombreux pays (des versions du LSE en espagnol et en anglais existent déjà). »Exemples de programme
Les Bouteilles de bière
1*CHANSON DES 99 BOUTEILLES DE BIERE 2*PASCAL BOURGUIGNON, <PJB@INFORMATIMAGO.COM>, 2003 10 FAIRE 20 POUR N←99 PAS -1 JUSQUA 1 20 &STROF(N) 30 AFFICHER['IL EST TEMPS D’’ALLER AU MAGASIN.',/] 40 TERMINER 100 PROCEDURE &STROF(N) LOCAL S1,S0;CHAINE S1,S0;S1←"S";S0←"S" 110 SI N=2 ALORS S0←"S" SINON SI N=1 ALORS DEBUT S1←"";S0←"" FIN 120 AFFICHER[U,' BOUTEILLE',U,' DE BIERE SUR LE MUR.',/]N,S1 130 AFFICHER[U,' BOUTEILLE',U,' DE BIERE.',/]N,S1 140 AFFICHER['EN PRENDRE UNE, LA FAIRE PASSER.',/] 150 AFFICHER[U,' BOUTEILLE',U,' DE BIERE SUR LE MUR.',2/]N-1,S0 160 RETOUR
Anagramme récursive
Exemple extrait du papier de J. Arsac sur LSE83
1 CHAINE A,B,BP 5 FAIRE 10 AFFICHER 'A = ' ;LIRE A ; SI A=’’ ALORS FINI IS " 11 AFFICHER 'B = ' ;LIRE B ; BP ← B 12 15 R SI LGR(A) # LGR(B) ALORS .FAUX. SINON &ANAG(A,B) IS 20 SI R ALORS AFFICHER A, 'EST ANAGRAMME DE ',BP 21 SINON AFFICHER A, 'N’’EST PAS ANAGRAMME DE 1 ,BP 22 IS 25 BOUCLER 29 30 TERMINER 31 50 FONCTION &ANAG(U,V) LOCAL J {lgr(u)=lgr(v)} 51 SI U=' ' ALORS RESULTAT .VRAI. IS 52 SI J = 0 ALORS RESULTAT .FAUX. IS 54 RESULTAT &ANAG(SCH(U,2, ' '),MCH(V,J,l, ' ')) 55 $&ANAG 99 $
Anagramme itérative
Même source.
Ce programme dit si la chaîne B est anagramme de A (mêmes caractères mais dans un autre ordre).
1 CHAINE A,B,BP 10 FAIRE 15 "LEC ture des données A et B" 20 CAS 22 SI LGR(A)#LGR(B) ALORS ANAG ← .FAUX. ; FINI IS 25 I ← l 30 FAIRE {tous les caractères de A de l à I-1 retirés de B} 32 SI I>LGR(A) ALORS ANAg ← LGR(B)=O ; FINI IS 34 J <- POS(B,l,SCH(A,I,l)) 36 SI J=0 ALORS ANAG ← .FAUX. ;FINI IS 38 B ← MCH(B,J,l,") 39 I ← I+1 40 BOUCLER 49 $ 50 60 "AFFichage du résultat" 65 70 AFFICHER 'AUTRE COUPLE ?' ; LIRE A 71 SI A #'OUI' ALORS FINI IS 72 BOUCLER 79 TERMINER 80 BLOC "LEC"l 81 AFFICHER 'PREMIERE CHAINE ' ; LIRE A 82 AFFICHER 'DEUXIEME CHAINE ' ; LIRE B ; BP B 83 $"LEC" 89 90 BLOC "AFF" 91 SI ANAG ALORS AFFICHER A, 'EST ANAGRAMME DE ',BP 92 SINON AFFICHER A, 'N"EST PAS ANAGRAMME DE ',BP 93 IS 94 $ "AFF" 99 $
Exemple LSE2000
* Quelques déclarations * Suivit d'une boucle BOOLEEN A←VRAI,B←FAUX ENTIER U,W,X←200 NOMBRE PI←3.14159 CHAINE CHN TABLEAU DE ENTIER TBL[3,3] QUEUE DE CHAINE Q[8] ENSEMBLE DE NOMBRE NPREMIER←{1.0,2.0,3.0,7.0} CHN<-'Salut' X ← SELON X ALORS 1,2,3,7,11 SINON 0 POUR U←0 JUSQUA 2 FAIRE POUR W←0 JUSQUA 2 FAIRE TBL[U,W]←X BOUCLER BOUCLER TERMINER
Références
- ↑ Yves Noyelle, La saga du LSE et de sa famille, LSD/LSG/LST (1989)
- ↑ Annonce de LSE83
- ↑ LSE2K
- ↑ Participation EPI au « schéma directeur »
Voir aussi
- Portail de la programmation informatique
Catégorie : Langage de programmation
Wikimedia Foundation. 2010.