Un langage interpreté fortement influencé par C, R et Python.
Voici un résumé des étapes mises en place.
Avec flex on traduit le flux d'entrée (lexèmes) en unités lexicales (tokens).
Avec Bison on réalise l'analyse syntaxique du flux de token suivant notre propre grammaire.
L'arbre de syntaxe abstrait s'obtient facilement à partir des dérivations de notre analyse grammaticale du fait du choix d'une architecture à pile. $ make display_ast
permet la visualisation de l'AST.
Cette étape convertit l'AST en un langage d'assemblage executable dans notre partie opérationelle (PO). Celle ci est à jeu d'instructions réduit prenant 0 ou 1 argument (ex: push_cst 42, pop, add).
Pour completer notre architecture de jeu d'instructions (ISA), nous simulons une architecture à pile permettant l'éxecution de nos pcodes. Nous retrouvons ici de la mémoire (programme, variables ...), une unité arithmétique et logique (ALU) basé sur des objet de tout types, un compteur ordinal...
make
bin/main < fpsrc/euclide.fp