Portail d'enseignement

E Suong
E Suong

Explorer les ressources

Accueil

Documentation technique

Interpréteur LN

Fiche de référence du code : fonctionnement, formats et limites. La disponibilité publique dépend de la version publiée.

Sommaire de la fiche

Page : interpreteur-ln.astro (../../src/pages/outils/interpreteur-ln.astro). Spécification technique : README du moteur.

Fonctionnement

Éditeur avec coloration et majuscules automatiques, exemples, saisie dans la console, exécution/arrêt et module graphique stylo. L’interface utilise client.mjs pour démarrer un Worker ; le moteur analyse les jetons puis l’arbre syntaxique. Aucun eval, constructeur Function ou compilation du programme en JavaScript.

ENTRER produit du texte ; les conversions sont explicites. La syntaxe, les portées, les listes, les opérateurs et les limites sont détaillés dans le README du moteur. Le calcul est limité à dix secondes hors attente de saisie/rendu, avec arrêt forcé depuis la page. Stylo est rendu en SVG et son animation est interruptible.

Données et conventions

Le programme est conservé sous ln-code-v1, indépendamment de l’authentification. La suppression des données du barème/boîtes ne l’affecte pas.

Statistiques LN : écart-type de population, quartiles scolaires aux rangs arrondis au supérieur. Ne pas remplacer ces conventions par celles du barème. Le module stylo utilise les degrés, alors que les fonctions trigonométriques usuelles utilisent les radians.

Modifier et vérifier

Ajouter les fonctions intégrées dans builtins.mjs, la grammaire dans syntax.mjs, l’exécution dans runtime.mjs. Préserver le protocole Worker/client et les budgets.

Tests : node --test tests/ln.test.mjs tests/ln-highlight.test.mjs tests/ln-stylo.test.mjs. Vérifier aussi dans le navigateur : entrée vide, saisies successives, arrêt pendant saisie, boucle infinie, relance et arrêt d’un dessin. Les tests unitaires ne remplacent pas cette recette.

Extensions pédagogiques

Le défi Empilement de caisses réutilise ce moteur et son Worker. Le troisième argument facultatif de startProgram sélectionne un contexte hôte connu ; sans contexte, LN et stylo restent inchangés. Les commandes droite/gauche du défi ne remplacent pas celles de stylo dans l’interpréteur ordinaire.

Le Labyrinthe spirale utilise également le Worker, dans le contexte spiral. Les capteurs retournent de vrais booléens LN après acquittement du rendu, et participent au pas à pas.

← Retour à la documentation