- - - -
- - -

Désolée, votre brouteur n'interprète pas les images SVG, mais ceci n'est qu'une illustration synthétique avec des liens vers la suite du document.

Je m'intéresse à la sûreté de programmation, notamment à la qualité de l'arithmétique, ainsi qu'aux preuves formelles mécanisées.

Un petit lien vers FOC pour voir

À partir de la couche assembleur, de la version C et de la description de la version Lisp du package d'arithmétique rationnelle exacte BigNum développé à l'Inria, j'ai écrit pendant ma thèse la version Caml de BigNum
  • Efficace, flexible, puissant, aisé à utiliser, intégrée au langage
  • Conçue et implémentée en Caml V3.1
  • Adaptée pour Caml Light par Xavier Leroy, pour Caml Special Light, le prédécesseur d'Objective Caml, par Victor Manuel Gulias Fernandez
  • Maintenue par Pierre Weis
  • La couche de bas niveau sans allocation n'est plus fournie par BigNum pour s'affranchir de ses problèmes de licence, elle a été entièrement réécrite par Xavier Leroy et utilise les inline extended asm de gcc

Vingt ans d'arithmétique réelle: le comblement progressif d'un fossé entre le résultat faux tout de suite et le résultat correct trop tard


L'arithmétique réelle en précision arbitraire

Les enjeux d'une arithmétique réelle en précision arbitraire
  • L'état de l'arithmétique des ordinateurs aujourd'hui:
    • Les processeurs forunissent des entiers bornés et des nombres flottants.
    • C'est nettement insuffisant à l'heure actuelle où les besoins de précision de nombre de calculs grandissent et où la vitesse des ordinateurs permet d'envisager d'aller plus loin (par exemple nombre d'applications graphiques névessitent de calculer avec des flottants de plusieurs mots voire davantage).
    • Par ailleurs certains algorithmes théoriques ne sont corrects que si certaines propriétés sont vérifiées et il faut donc pouvoir assurer par une précision convenable ces propriétés au cours d'une chaîne algorithmique (par exemple ce besoin est particulièrement sensible en calcul scientifique).
  • Un programme décrit dans un bon langage peut fournir un résultat avec toute la précision requise par le programmeur, mais une erreur dans l'algorithme ou dans le programme qui l'implémente retire tout intérêt à cette précision. Il est donc aussi important dans une chaîne du logiciel sûre de pouvoir prouver les programmes que l'on écrit.

Mes publications sur l'arithmétique exacte


La preuve formelle mécanisée


Mes publications sur la preuve formelle mécanisée

Quelques preuves formelles en Coq