zo iNiTiATiON SPEECHES
S01E08 2024-08-05

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_foo
  • F2oB2a, foo1, f2b2

Les booléens

  • false, true

Les opérations unaires

  • -1, -1.0opposé.
  • !true, !falsenégation.

L’assignation

  • x = 2;la notion de scope est 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 valeur 6 du 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 Clickdes passionnés des compilateurs.
  • Context Freeun passionné des langages et des interviews de créateurs de langages.
  • Jonathan Blowplus de 10 ans de développement d’un compilateur.
  • Tsoding — Porthcréation d’un langage de programmation en live.

Je laisse ça là au cas où. En attendant que le turfu t’accompagne.

@invisageable