Inférer et vérifier les tailles de tableaux avec des types polymorphes - Inria - Institut national de recherche en sciences et technologies du numérique
Communication Dans Un Congrès Année : 2022

Inférer et vérifier les tailles de tableaux avec des types polymorphes

Jean-Louis Colaço
  • Fonction : Auteur
  • PersonId : 1131403
Baptiste Pauget

Résumé

Cet article présente un système de vérification et d'inférence statique des tailles de tableaux dans un langage fonctionnel strict statiquement typé. Plutôt que de s'en remettre à des types dépendants, nous proposons un système de types proche de celui de ML. Le polymorphisme sert à définir des fonctions génériques en type et en taille. L'inférence permet une écriture plus légère des opérations classiques de traitement du signal-application point-à-point, accumulation, projection, transposée, convolution-et de leur composition ; c'est un atout clef de la solution proposée. Pour obtenir un bon compromis entre expressivité du langage des tailles et décidabilité de la vérification et de l'inférence, notre solution repose sur deux éléments : (i) un langage de types où les tailles sont des polynômes multi-variés et (ii) l'insertion de points de coercition explicites entre tailles dans le programme source. Lorsque le programme est bien typé, il s'exécute sans erreur de taille en dehors de ces points de coercition. Deux usages de la proposition faite ici peuvent être envisagés : (i) la génération de code défensif aux points de coercition ou, (ii) pour les applications critiques ou intensives, la vérification statique des coercitions en les limitant à des expressions évaluables à la compilation ou par d'autres moyens de vérification formelle. L'article définit le langage d'entrée, sa sémantique dynamique, son système de types et montre sa correction. Il est accompagné d'une implémentation en OCaml, dont le code source est accessible publiquement.
Fichier principal
Vignette du fichier
jfla22_paper_16.pdf (774.2 Ko) Télécharger le fichier
Origine Fichiers éditeurs autorisés sur une archive ouverte

Dates et versions

hal-03626802 , version 1 (31-03-2022)

Identifiants

  • HAL Id : hal-03626802 , version 1

Citer

Jean-Louis Colaço, Baptiste Pauget, Marc Pouzet. Inférer et vérifier les tailles de tableaux avec des types polymorphes. 33èmes Journées Francophones des Langages Applicatifs, Jun 2022, Saint-Médard-d'Excideuil, France. pp.140-164. ⟨hal-03626802⟩
125 Consultations
158 Téléchargements

Partager

More