Polymorphic Data Types, Objects, Modules and Functors: is it too.much.? - Archive ouverte HAL Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2000

Polymorphic Data Types, Objects, Modules and Functors: is it too.much.?

Types Polymorphes, Objets, Modules, Foncteurs: Est-ce de trop.?

Résumé

Abstraction is a powerful tool for developers and it is offered by numerous features such as polymorphism, classes, modules and functors, . . A working programmer may be confused with this abundance. We develop a computer algebra library which is being certified. Reporting this experience made with a language (Ocaml) offering all these features, we argue that they are all needed together. We compare several ways of using classes to represent algebraic concept, trying to follow as close as possible mathematical specification. Then we show how to combine classes and modules to produce code having very strong properties. Currently, this library is made of one hundred units of functional codes and behaves faster than analogous ones such as Axiom.
L'abstraction est un mécanisme très puissant, offert par de nombreux traits de programmation, comme le polymorphisme, les classes, les modules et les foncteurs, . . Les développeurs de programme peuvent donc être embarrassés devant tant d'abondance. Nous avons développés une bibliothèque de Calcul Formel que nous avons l'intention de certifier. A partir de cette expérience avec un langage (Ocaml) offrant tous ces traits de programmation, nous pensons que tous ces traits sont nécessaires, ensemble. Nous comparons plusieurs manières d'utiliser les classes pour représenter des concepts d'algèbre, en essayant d'être le plus près possible de la spécification mathématique. Ensuite, nous montrons comment combiner les classes et les modules pour produire du code ayant des propriétés de typage fortes. Actuellement, la bibliothèque contient plus d'une centaine d'unités, avec des programmes fonctionnels dont l'efficacité n'a rien à envier à leurs équivalents dans des systèmes comme Axiom.
Fichier principal
Vignette du fichier
lip6.2000.014.pdf (267.69 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02548309 , version 1 (20-04-2020)

Identifiants

  • HAL Id : hal-02548309 , version 1

Citer

Sylvain Boulmé, Thérèse Hardin, Renaud Rioboo. Polymorphic Data Types, Objects, Modules and Functors: is it too.much.?. [Research Report] lip6.2000.014, LIP6. 2000. ⟨hal-02548309⟩
16 Consultations
474 Téléchargements

Partager

Gmail Facebook X LinkedIn More