À propos du service
TraduitBesoin d'un interpréteur fonctionnel pour le langage de programmation Monkey — le langage éducatif du livre "Writing an Interpreter in Go" et de sa suite "Writing a Compiler in Go" ? J'assemble l'ensemble du pipeline à partir de zéro et j'étends l'implémentation de référence avec les capacités que les auteurs ont laissées comme exercices.
Ce que vous obtiendrez :
— Un analyseur lexical écrit à la main qui transforme le code source en tokens, avec un suivi de position pour des messages d'erreur lisibles.
— Un analyseur Pratt (analyse descendante par priorité des opérateurs) qui construit un AST typé propre.
— Un évaluateur qui parcourt l'arbre avec des entiers, des booléens, des chaînes, des tableaux, des hachages, des fonctions de première classe et des fermetures.
— Un compilateur vers du bytecode et une machine virtuelle basée sur une pile pour une véritable rapidité : table des symboles, pool de constantes, gestion des frames.
— Fonctions intégrées, `let`/`if`/`return`, fonctions d'ordre supérieur et un REPL pratique.
Extensions sur demande : nombres à virgule flottante, boucles `while`/`for`, opérateurs postfixes et composés, macros avec quote/unquote, imports de modules, expériences de collecte des ordures, valeurs d'erreur et fonctions de bibliothèque standard intégrées plus riches.
Chaque build est accompagné d'un ensemble complet de tests basés sur des tables, d'un historique de commits propre et d'un README qui vous guide à travers chaque étape afin que vous continuiez à apprendre directement à partir du code. Je peux le faire en Go ou porter le design vers un autre langage hôte. Une excellente option pour les étudiants, les enseignants et quiconque a besoin d'un langage petit mais complet pour des expériences.
Ce que vous obtiendrez :
— Un analyseur lexical écrit à la main qui transforme le code source en tokens, avec un suivi de position pour des messages d'erreur lisibles.
— Un analyseur Pratt (analyse descendante par priorité des opérateurs) qui construit un AST typé propre.
— Un évaluateur qui parcourt l'arbre avec des entiers, des booléens, des chaînes, des tableaux, des hachages, des fonctions de première classe et des fermetures.
— Un compilateur vers du bytecode et une machine virtuelle basée sur une pile pour une véritable rapidité : table des symboles, pool de constantes, gestion des frames.
— Fonctions intégrées, `let`/`if`/`return`, fonctions d'ordre supérieur et un REPL pratique.
Extensions sur demande : nombres à virgule flottante, boucles `while`/`for`, opérateurs postfixes et composés, macros avec quote/unquote, imports de modules, expériences de collecte des ordures, valeurs d'erreur et fonctions de bibliothèque standard intégrées plus riches.
Chaque build est accompagné d'un ensemble complet de tests basés sur des tables, d'un historique de commits propre et d'un README qui vous guide à travers chaque étape afin que vous continuiez à apprendre directement à partir du code. Je peux le faire en Go ou porter le design vers un autre langage hôte. Une excellente option pour les étudiants, les enseignants et quiconque a besoin d'un langage petit mais complet pour des expériences.