Analyse avec Flex/Bison, évaluation en OCaml, arbre syntaxique affiché.
TerminéSprint S11-S12 · 8 points
En bref, sans jargonpour les non-informaticiensLire le résuméRefermer
Ce que c'est
Un petit langage de programmation inventé pour l'occasion, « Maille », qui sait décrire des objets 3D, et l'outil qui exécute ses programmes dans la page.
À quoi ça sert
Comprendre de l'intérieur comment fonctionnent les langages dans lesquels on programme.
Ce que ça montre
Des notions avancées d'informatique, enseignées à l'université, mises en pratique de bout en bout.
Navigateur (WebAssembly, js_of_ocaml) → Résultat (valeur et type) : les deux, chez le visiteur
Essayer Maille dans le navigateur
Le programme est analysé par l'analyseur C (Flex et Bison) compilé en WebAssembly, puis typé et évalué par l'interpréteur OCaml compilé en JavaScript : rien ne quitte votre navigateur.
Exemples :
Ctrl+Entrée (⌘+Entrée sur Mac) pour exécuter. Maillages : torus, sphere, cylinder (résolution de 3 à 256), union ; invariants : vertices, edges, faces, euler, boundary_loops, components, genus.
Arbre syntaxique
Produit par l'analyseur C. Chaque nœud indique sa ligne et sa colonne ; cliquez dessus pour placer le curseur à cet endroit du programme.
Technologies
Flex
Bison
OCaml
C
Qui fait quoi
Flex
Le lexer de Maille : mots, nombres, chaînes, positions en caractères UTF-8, erreurs lexicales nommées.
Bison
La grammaire, sans aucun conflit, qui construit l'arbre syntaxique situé.
OCaml
L'interpréteur : inférence de types Hindley-Milner et évaluation ; compilé en JavaScript par js_of_ocaml pour la fiche.
C
L'analyseur réentrant autour de Flex et Bison, compilé en WebAssembly par Emscripten pour la fiche.