Analyse statique de consommation mémoire pour un langage fonctionnel/impératif typé
Résumé
L'avènement des systèmes à ressources restreintes dans notre quotidien exige des garanties sur leur fonctionnement. Parmi celles-ci, la consommation mémoire est un des éléments essentiels. Il est intéressant d'utiliser des mécanismes d'allocation et de récupération dynamique de mémoire pour une utilisation optimale de celle-ci. Mais cette dynamicité rend difficile la prévision de la quantité maximale de mémoire nécessaire au bon fonctionnement d'un programme. Pour permettre cette prévision, on propose le développement conjoint d'un langage à la ML muni d'un mécanisme de régions et d'une analyse fournissant une borne supérieure de la quantité de mémoire consommée. Cette analyse exploite les annotations de régions pour tenir compte de la mémoire libérée à travers celles-ci et ainsi affiner la borne supérieure de son occupation Comme le style de programmation influence les dépendances entre régions, il impacte aussi le résultat de l'analyse. Au final, on parvient à fournir une borne supérieure pour des programmes fonctionnels et impératifs manipulant des structures linéaires et arborescentes.