T09 · Ingénierie pratique CAKE© · Chapitre 6 / 11

Interfaces et interaction avec le moteur CAKE©

L'éditeur, la ligne de commande et le REPL : trois portes vers un même moteur

On entre dans le moteur CakeLang par trois portes. Depuis les correctifs de septembre 2026, elles partagent le même pipeline d'analyse : un programme donne le même arbre, et donc la même empreinte, quelle que soit la porte empruntée. Ce qui change d'une porte à l'autre, c'est l'environnement autour de l'exécution.

L'éditeur CakeLand

L'éditeur web exécute le programme en bac à sable : aucune lecture ni écriture de fichier, aucune commande système. C'est la porte des lecteurs de cette bibliothèque, et tous les exemples du tome sont vérifiés sur ce chemin, sauf mention contraire.

La ligne de commande cake

Elle exécute sans bac à sable et offre trois commandes d'inspection : cake parse fichier.cake affiche l'arbre en JSON, cake hash fichier.cake calcule l'empreinte d'arbre, et cake -e "expression" évalue une expression isolée. C'est avec cake hash que l'on vérifie les empreintes imprimées dans ce tome.

Le REPL

Le REPL, lancé par cake repl, garde l'état d'une saisie à l'autre et convient à l'exploration pas à pas, avec le débogueur et ses points d'arrêt.


Des fonctions, par chacune des portes

Une fonction se déclare avec <@:, son nom, ses paramètres typés et son type de retour. Son corps accepte les instructions C% habituelles, et return renvoie la valeur.

Une fonction, dans l'éditeur

Source C% · t09c06-a.cake
<@: vitesseCirculaire(mu %double, r %double) %double {
  =: v=Cake.sqrt(mu/r)%
  return v%
} %
=: v=vitesseCirculaire(398600.4418, 6578.137)%
|> "Vitesse circulaire : " + Cake.format("{0:F3}", v) + " km/s"%
Sortie réelle du moteur
Vitesse circulaire : 7.784 km/s
Arbre syntaxique sérialisé en CXML par l'analyseur
<projet nom="t09c06-a" package="com.unibool.script" type="Library">
  <classe nom="Root" visibilite="Public">
    <methode nom="main" retour="void" visibilite="Public">
      <bloc>
        <declaration nom="v" type="var" valeur="vitesseCirculaire(398600.4418, 6578.137)"/>
        <appel methode="println" args="&quot;Vitesse circulaire : &quot; + Cake.format(&quot;{0:F3}&quot;, v) + &quot; km/s&quot;"/>
      </bloc>
    </methode>
    <methode nom="vitesseCirculaire" retour="double" visibilite="Public">
      <parametre nom="mu" type="double"/>
      <parametre nom="r" type="double"/>
      <bloc>
        <declaration nom="v" type="var" valeur="Cake.sqrt(mu / r)"/>
        <retour-stmt valeur="v"/>
      </bloc>
    </methode>
  </classe>
</projet
Traçabilité — opcodes : =: déclarations · |> entrées/sorties · bibliothèque : Cake.sqrt, Cake.format
nœuds d'arbre : déclaration, appel, retour · empreinte d'arbre e8bf74bfd97f5899 (reproductible : cake hash t09c06-a.cake)
vérifié le 2026-09-23 dans le moteur CakeLang, chemin de l'éditeur CakeLand, bac à sable actif.

Le même source, par le REPL

Même source, même sortie. Avant septembre 2026, l'éditeur ignorait ces déclarations sans message ; c'est l'un des défauts corrigés grâce à ce tome.

Source C% · t09c06-b.cake
<@: vitesseCirculaire(mu %double, r %double) %double {
  =: v=Cake.sqrt(mu/r)%
  return v%
} %
=: v=vitesseCirculaire(398600.4418, 6578.137)%
|> "Vitesse circulaire : " + Cake.format("{0:F3}", v) + " km/s"%
Sortie réelle du moteur
Vitesse circulaire : 7.784 km/s
Traçabilité — opcodes : =: déclarations · |> entrées/sorties · bibliothèque : Cake.sqrt, Cake.format
nœuds d'arbre : déclaration, appel, retour · empreinte d'arbre 73e5c063f0b37bec (reproductible : cake hash t09c06-b.cake)
vérifié le 2026-09-23 dans le moteur CakeLang, chemin du REPL (RunSource).
Principe clé du chapitre

Un moteur digne de confiance donne le même arbre par toutes ses portes. Ce qui peut différer, c'est l'environnement autour de l'exécution, et il doit être écrit à côté de chaque exemple.

→

Le chapitre suivant regarde ce qui protège l'exécution elle-même : le bac à sable, le budget et les blocs d'erreur.

← Chapitre précédent C05 · Transformer les architectures
T09 · C06 / 11
Chapitre suivant → C07 · Les environnements d'exécution CAKE©
CAKE© Library  ·  Sébastien Roy  ·  CEO, UniBool Inc.  ·  Canada  ·  Édition 2026