Aller au contenu
EN FR

Stratégie d'évaluation FPLN

Statut documentaire : architecture — voir Maturité et preuves.

Le moteur d'évaluation de logiCells traite les expressions comme des protocoles d'exécution à états. Une expression n'est pas nécessairement évaluée par un appel monolithique : elle peut préparer un contexte, demander l'évaluation d'une sous-expression, reprendre avec une valeur intermédiaire, modifier l'environnement puis terminer.

Cette architecture permet d'utiliser un même modèle d'exécution pour le contrôle de flux, l'application fonctionnelle, les collections, l'accès aux valeurs, le pattern matching et les opérations plus avancées.

Ce qui est confirmé dans le moteur actuel

L'implémentation courante possède :

  • une table d'exécution indexée par type d'expression et état d'évaluation ;
  • des chemins d'évaluation distincts pour les contextes dynamiques et locaux ;
  • l'enregistrement d'automates complets pour une catégorie d'expression ;
  • des protocoles spécialisés pour pré/post-évaluation, application fonctionnelle, automates push-down et pattern matching ;
  • une pile d'exécution et une pile de données attachées au contexte ;
  • une trace de l'état courant utilisable pour le diagnostic du moteur.

Ces mécanismes sont des propriétés architecturales du moteur. Les noms de classes et fonctions privées qui les réalisent ne font pas partie du contrat public.

Modèle mental

expression
  -> état 0 : préparation
  -> sous-expression / donnée / contexte
  -> état 1 : reprise
  -> état n : traitement spécialisé
  -> valeur ou effet observable
  -> terminaison

Une stratégie peut donc suspendre son travail pendant qu'une sous-expression est évaluée, puis reprendre au même point logique.

Deux dimensions importantes

Type d'expression

Chaque famille syntaxique ou sémantique possède une identité d'expression connue du moteur.

État d'évaluation

Une même expression peut traverser plusieurs états. Le nombre et le sens des états dépendent du protocole de la famille concernée.

Cette séparation évite d'encoder toute la sémantique dans une unique boucle géante et rend les stratégies composables.

Modes de contexte

Le moteur distingue plusieurs contextes d'évaluation, notamment fonctionnel, fonctionnel pur, sémantique et sémantique pur. Il supporte également des variantes d'environnement local et dynamique.

Ces modes ne doivent pas être confondus avec des langages différents : ils modifient les règles de résolution et de propagation du contexte au sein d'un même moteur multi-paradigme.

Automates documentés

Statut documentaire

Cette section décrit l'architecture observable et les formes de langage confirmées par la grammaire et le moteur actuels. Elle ne constitue pas une documentation des classes internes du moteur.