Types Polymorphes, Objets, Modules, Foncteurs: Est-ce de trop.?
- S. Boulmé, Th. Hardin, R. Rioboo
- 18 pages - 05/31/2000- document en - http://www.lip6.fr/lip6/reports/2000/lip6.2000.014.ps.gz - 132 Ko
- Contact : Sylvain.Boulme (at) nulllip6.fr, Therese.Hardin (at) nulllip6.fr, Renaud.Rioboo (at) nulllip6.fr
- Ancien Thème : CALFOR
- Keywords : classes, modules, functors, objects, types, polymorphism, functionnal
programming, Computer Algebra, specification, library
- Publisher : David.Massot (at) nulllip6.fr
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.