Inférer et vérifier les tailles de tableaux avec des types polymorphes - Trente-Troisièmes Journées Francophones des Langages Applicatifs Access content directly
Conference Papers Year : 2022

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

Jean-Louis Colaço
  • Function : Author
  • PersonId : 1131403
Baptiste Pauget
  • Function : Author
  • PersonId : 1131404

Abstract

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
Origin : Publisher files allowed on an open archive

Dates and versions

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

Identifiers

  • HAL Id : hal-03626802 , version 1

Cite

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⟩
56 View
76 Download

Share

Gmail Facebook Twitter LinkedIn More