Automates d'évaluation FPLN
Statut documentaire : architecture — voir Maturité et preuves.
Les automates d'évaluation décrivent la progression d'une expression entre préparation, évaluation de sous-expressions, changements de contexte, production de valeur et terminaison.
Ils correspondent à un mécanisme réel du moteur : les stratégies sont enregistrées par type d'expression et par état, puis reprises par la boucle d'exécution.
Pourquoi des automates ?
Cette approche permet de :
- suspendre une expression pendant qu'une dépendance est évaluée ;
- reprendre l'expression au bon état sans perdre son contexte ;
- partager un protocole commun entre plusieurs paradigmes ;
- séparer la structure d'une stratégie de ses détails d'implémentation ;
- diagnostiquer l'étape exacte d'une évaluation ;
- faire évoluer une famille d'expressions sans construire un interpréteur monolithique.
Familles
Les principales familles comprennent :
- contrôle de flux ;
- application fonctionnelle et lambdas ;
- opérateurs de collection ;
- résolution et accès ;
- pattern matching ;
- opérations nécessitant plusieurs phases de contexte.
Formes confirmées par la grammaire actuelle
La grammaire fonctionnelle actuelle contient notamment les formes if ... then ... else, for ... to ... do, lambda, map et l'application d'expressions.
Les pages ci-dessous décrivent leur modèle d'évaluation public, pas les classes privées utilisées pour les réaliser.
Voir aussi Machines d'état d'évaluation.