Couche 03 · Langage

YatsuScript

Un langage de script et une VM à registres de ma conception, écrits en Rust.

Ce que c'est

YatsuScript est un langage de script et une VM de bytecode de ma conception. Je n'ai lu le code d'aucun interpréteur existant avant de commencer : juste le compilateur Rust, un éditeur de texte, et beaucoup de débogage par terminal. De petits crates comme logos gèrent la plomberie du lexing, la conception du langage et de la VM est la mienne.

Ça a commencé par « je me demande comment ça marche » et c'est devenu le truc le plus dur que j'ai construit.

Architecture

Le cœur se découpe en trois phases distinctes :

  • Front end: Le lexer et le parser transforment le code source en AST.
  • Compilateur: Optimise l'AST et émet du bytecode à registres.
  • VM: Exécute le bytecode sur une machine à registres, avec GC générationnel et fonctions natives.

Ce que j'ai appris

Plus que dans n'importe quel autre projet : que tu n'as pas besoin de tout comprendre avant de commencer. J'ai commencé avec zéro connaissance en conception de VM. Le compilateur Rust attrape assez d'erreurs pour que tu puisses apprendre en faisant : chaque erreur du compilateur t'apprend quelque chose de réel sur le fonctionnement des ordinateurs à bas niveau.

Si t'aimes les compilateurs, on devrait parler.