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
- Vue d'ensemble des automates
iffor ... to ... do- lambda et application
map- pattern matching
- accès par point
- Architecture des machines d'état d'évaluation
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.