LSE (langage de programmation) - LSE (programming language)

LSE ( Français : Langue d'enseignement symbolique ) est un langage de programmation développé à Supélec et Télémécanique des fin des années 1960 au milieu 1970s.It est similaire à BASIC , sauf français -langue au lieu de anglais mots - clés -Langue. Il est dérivé d'un langage antérieur appelé LSD , également développé à Supélec. On dit le plus souvent qu'il s'agit d'un acronyme pour Langage Symbolique d'Enseignement , mais d'autres extensions sont également connues (par exemple Langage de Sup-Élec , ou le plus cynique Langage Sans Espoir ).

Il a prospéré à l'origine grâce au soutien du ministère français de l'Éducation nationale , mais a décliné lorsque le ministère a perdu tout intérêt. Il a subi un certain nombre de révisions; les versions antérieures de LSE manquaient de prise en charge complète de la programmation structurée , les versions ultérieures telles que LSE-83 (alias LSE-1983) de Jacques Arsac ont ajouté la prise en charge de la programmation structurée, ainsi que la gestion des exceptions . Même les révisions ultérieures, telles que LSE-2000, ont ajouté plus de fonctionnalités, de nouveaux types, de nouveaux opérateurs (NI, ET QUE, OU QUE et SELON-DANS-SINON), des commandes de contrôle de flux, etc.

Exemples de codes

99 Bouteilles (AFNOR Z 65-020)

  1*CHANSON DES 99 BOUTEILLES DE BIERE
  2*PASCAL BOURGUIGNON, 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←"" 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

Anagrammes (LSE-1983)

Exemple de Jacques Arsac en 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 $

Plus grand diviseur commun, algorithme d'Euclide (LSE2000)

(*
** MÉTHODE D'EUCLIDE POUR TROUVER LE PLUS GRAND DIVISEUR COMMUN D'UN
** NUMÉRATEUR ET D'UN DÉNOMINATEUR.
** L. Goulet 2010
*)
PROCÉDURE &PGDC(ENTIER U, ENTIER V) : ENTIER LOCAL U, V
   ENTIER T
   TANT QUE U > 0 FAIRE
       SI U< V ALORS
           T←U
           U←V
           V←T
       FIN SI
       U ← U - V
   BOUCLER
   RÉSULTAT V
FIN PROCÉDURE

PROCÉDURE &DEMO(ENTIER U, ENTIER V) LOCAL U, V
   AFFICHER ['Le PGDC de ',U,'/',U,' est ',U,/] U, V, &PGDC(U,V)
FIN PROCÉDURE

&DEMO(9,12)

Les références

Liens externes