La definition de fonctions par cas a l'aide de motifs dans des langages applicatifs
Auteur / Autrice : | Delia Kesner |
Direction : | Laurence Puel |
Type : | Thèse de doctorat |
Discipline(s) : | Sciences appliquées |
Date : | Soutenance en 1993 |
Etablissement(s) : | Paris 11 |
Résumé
Dans cette these, nous nous sommes interesses a deux modeles de programmation avec definitions de fonctions par cas a l'aide de motifs. Dans la premiere partie, nous introduisons le calcul type avec motifs, propose comme une modelisation de la definition de fonctions par cas dans les langages de programmation fonctionnels types. Le calcul est dessine dans l'esprit de l'isomorphisme de curry-howard comme une interpretation calculatoire du calcul des sequents de gentzen. Nous montrons les proprietes essentielles qui lient le typage et l'evaluation: preservation de types, confluence et normalisation forte. Nous decrivons aussi des evaluateurs stricts et paresseux pour notre calcul. Dans la deuxieme partie, nous etudions un sous-calcul du calcul type avec motifs, le calcul lwpp. Nous montrons comment raisonner sur des programmes modelises par le calcul lwpp en ajoutant des axiomes extensionnels pour les types produits et les types fonctionnels. Nous orientons ces axiomes comme des expansions, obtenant ainsi un systeme de reduction qui est confluent. Dans la troisieme partie de la these nous etudions les definitions de fonctions par cas a l'aide de motifs dans la famille des langages ordo-sortes modelises par les systemes de reecriture munis d'une structure de types algebriques avec sortes ordonnees. Nous montrons d'abord que pour les systemes orthogonaux, ou il n'y a pas des declarations multiples pour les symboles de fonctions, il existe toujours une strategie de normalisation correcte et effective dans le cas ou le systeme possede la propriete de sequentialite forte. Finalement, nous etudions le typage et le filtrage dans les systemes ordo-sortes construits sur des signatures quelconques. Nous caracterisons enfin les problemes de typage et de filtrage qui admettent une compilation correcte