previous up next top index
Précédent : Composition de l'équipe Remonter : Projet LANDE Suivant : Actions de recherche


Présentation générale et objectifs

Le thème général de nos recherches est le développement de techniques de manipulation de programmes qui reposent sur des bases formelles. Ces techniques incluent notamment la transformation de programmes, l'analyse de programmes, et la compilation de langages de haut niveau.

Les outils de transformation et d'analyse de programmes que nous étudions peuvent être vus comme un genre particulier de méthodes formelles appliquées au génie logiciel. Leur particularité est d'offrir un service complètement (ou largement) automatisé (analyse de programmes, évaluation partielle), ce qui les distingue des méthodes formelles reposant sur un langage de spécification (comme Z, VDM, etc). Cette mécanisation est possible car les méthodes sont conçues pour répondre à un besoin bien identifié (spécialisation en fonction de certains invariants, preuve de propriétés de programmes liées à un objectif particulier). Nous pensons que ce genre de techniques peut procurer toute une gamme de services pour le développement et la mise au point des programmes. Nos travaux sur ce thème sont décrits dans les sections 3.1 (évaluation partielle), 3.2 (analyse statique) et 3.3 (analyse dynamique).

Les langages de haut niveau qui sont étudiés dans le projet sont les langages déclaratifs qui présentent le grand avantage de faciliter le raisonnement sur les programmes. Ces langages sont plus proches des spécifications que les langages impératifs traditionnels. Les recherches que nous menons sur les langages déclaratifs, aussi bien sur les aspects purement linguistiques que sur l'amélioration de leur mise en oeuvre, contribuent donc à faciliter le passage des spécifications d'une application à son implantation sur une machine donnée. Elles sont complémentaires des travaux décrits dans le paragraphe précédent et constituent la vision à plus long terme du projet. Nous séparons la présentation des contributions sur ces aspects en trois parties : 3.4 (les langages de programmation logique et leur mise en oeuvre), 3.5 (implantation des langages fonctionnels) et 3.6 (les types graphes).



previous up next top index Précédent : Composition de l'équipe Suivant : Actions de recherche Remonter : Projet LANDE