S01E08 — 05-08-2024.
Donner vie à…
jour 8.
Je poursuis l’ajout de sucre syntaxique à mon compilateur. Plus j’avance et plus mon plaisir s’intensifie. Le cheminement est assez particulier — partir d’une idée qui n’existait que dans un coin de ma tête pour aboutir à une preuve concrète de celle-ci est totalement jouissif. Dorénavant, avec mon p’tit langage jouet, je suis capable d’interpréter :
Les identifiants
foo,Bar,bar_fooF2oB2a,foo1,f2b2
Les booléens
false,true
Les opérations unaires
-1,-1.0— opposé.!true,!false— négation.
L’assignation
x = 2;— la notion descopeest implémenté donc si la variable a été déclarée en amont alors l’interpréteur sera capable d’aller récupérer la valeur en fonction de la portée de la variable.
Les opérateurs booléens
||,&&
Les opérateurs de comparaison
<,>,<=,>=,==,!=
Les opérateurs d’affectation
&=,|=,^=,<<=,>>=— ça vient compléter la liste déjà implémentée.
-Les tableaux
-
imu out : int[] = [4, 5, 6];— je déclare une variable immuable qui contient un tableau de nombres entiers. -
out[2]— j’accède à la valeur6du tableau.
Voilà pour le sucre. Petit à petit, j’enrichis le langage pour lui permettre d’être plus expressif. On est très loin d’un langage capable d’écrire des programmes utiles. Mais on va bientôt pouvoir écrire de petits programmes simples.
Sinon, j’ai commencé à préparer les erreurs pour la phase d’interprétation, ce qui va faciliter à mort le développement. Puisque chaque erreur est parfaitement découpée pour permettre de générer un message approprié pour chaque cas d’erreur.
Par exemple, une erreur unop est différente d’une binop, même si le message est plus ou moins le même — un opérateur invalide quoi ! — toutefois, j’ai, maintenant la modularité qu’il me faut pour afficher le message le plus adapté. D’ailleurs, il serait tellement stylé que les messages d’erreurs puissent être traduit en plusieurs langues.
Finalité, donner vie à un langage qui n’existait pas auparavant reste une sensation incroyable. Être en mesure d’observer les premiers pas du langage qui, dans un premier temps, ne sait rien faire et ne comprends rien du tout. Pour ensuite être capable d’exécuter une suite d’instructions, c’est tellement le turfu.
- Cliff Click — des passionnés des compilateurs.
- Context Free — un passionné des langages et des interviews de créateurs de langages.
- Jonathan Blow — plus de 10 ans de développement d’un compilateur.
- Tsoding — Porth — création d’un langage de programmation en live.
Je laisse ça là au cas où. En attendant que le turfu t’accompagne.