Stéphane Dalmas

"Ingénieur de recherche" in the SAFIR team at the Sophia Antipolis Research Center of INRIA.

Table of content

Research Activities

My research topics are in the computer science aspects of Symbolic Computation. Note that as an "Ingénieur de recherche", I am not a full-time researcher. The following is a summary of my past and present research interests.

Programming languages for symbolic computations

The subject of my PhD thesis was the design of a typed language suitable to express the level of polymorphism necessary to express the mathematical algorithms of computer algebra in their full generality. The resulting language, XFun , is a strongly typed functional programming language. XFun is not a language specialized for algebraic computation but a general purpose language, intended to explore what a sophisticated type system can bring to software engineering: to write reusable software components and to manage large software systems and their evolution. It can be used to describe mathematical objects and structures in a spirit similar to the one of Scratchpad (now the Axiom system with the Aldor language, developped by NAG). A prototype implementation of XFun was produced that generated C code, using parts of the SML/NJ compiler.

Automatic differentiation

I was the orignal designer (with Nicole Rostaing) of Odyssée, a software tool for automatic differentiation of Fortran programs.

Communication of mathematical objects

For the needs of the PoSSo Esprit/BRA project, Marc Gäetano and myself (with the help of Alain Sausse), designed ASAP and the Central Control. ASAP is a protocol to exchange mathematical objects encoded as attributed trees. This leads us to be involved in the OpenMath effort whose aim is to define a standard protocol for the exchange of mathematical data between programs. We are now participating in an Esprit project, OpenMath: Accessing and Using Mathematical Information Electronically (Task 3.2, Multimedia Standards) for which I am the technical contact (see the offical project page for more information).

The Central Control is a software component that has been designed to be the kernel of an environment for scientific computations which can offer a common and concurrent access to the tools needed by scientists and engineers: general purpose and specialized computer algebra systems, visualization tools, links with numerical libraries and tools to manipulate numerical programs... The Central Control can abstract the syntaxic and semantic differences of the systems so that, for example, an expression computed by Mathematica can be used as input to Maple. The Central Control is in fact an extended Scheme interpreter. This enables the dynamic configuration of a network of servers to distribute computations using the full power of the Scheme language. The Central Control supports asynchronous (batch) computations with a mechanism of promises that is very similar to the future construct of Multilisp. The Central Control can associate a handle to a result that is stored in a server to avoid the effective transmission of large objects. The current version of the Central Control is based on the scm Scheme interpreter, written by Aubrey Jaffer. The Central Control uses the ASAP protocol to communicate with its servers. Maple, GB and Mathematica servers have been developped.

Algorithm animation

Olivier Arsac, Marc Gäetano and myself designed Agat an algorithm animation system based on a client-server model. More information is available here .

Interfaces for computer algebra

The subject of the PhD thesis of Olivier Arsac is the design and implementation of a customisable equation editor, Emath . Emath embeds a Lisp interpreter (Klone) as its extension language in the same spirit as the Emacs text editor. Emath uses multithreading and pixmap cache methods to ensure maximum responsiveness. We are currently building a sophisticated user interface for symbolic computation using Emath.

Formula databases

The subject of the PhD thesis of Claude Huchet is the design of a deductive database for mathematical relations. The database itself is a stand-alone program which can run as a server in a client/server environment and it has been designed to be a powerful assistant for computer algebra systems as well as for other applications. At the heart of the database is a deduction engine based on an algorithm for associate-commutative unification that takes care of the conditions associated with the formulas.

Software Developments

I have been involved in the developement of several software projects (as one of the designer and often also as a programmer):

Committees and Working groups

I have been involved in the following cooperative works:


I have teached several graduate courses (mostly at the university of Nice-Sophia Antipolis):


For those who like to count, this is not a complete list of all my publications, but a selected one.

Automatic analysis and transformation of fortran programs using a typed functional language , Nicole Rostaing and Stéphane Dalmas, Proceeding of the 10th international conference on Computing methods in applied sciences and engineering, pp 527-535, Nova Science, 1992.

Automatic Differentiation in Odyssée , Nicole Rostaing, Stéphane Dalmas and André Galligo, Tellus, 45A, 5, pp 558-568, 1993

A polymorphic functional language applied to symbolic computation , Stéphane Dalmas, Proceedings of ISSAC 92, pp 369-375, 1992

Making Systems Communicate and Cooperate: the Central Control Approach , Stéphane Dalmas and Marc Gäetano Design and Implementation of Symbolic Computation Systems, LNCS 1128, pp 308-319, 1996

A Deductive Database for Mathematical formulas , Stéphane Dalmas, Marc Gaëtano and Claude Huchet, Design and Implementation of Symbolic Computation Systems, LNCS 1128, pp 287-296, 1996

A Distributed and Cooperative Environment for Computer Algebra , Stéphane Dalmas, Marc Gaëtano and Alain Sausse, J. Symbolic Computation, 21, pp 427-439, 1996

Algorithm Animation with AGAT , Olivier Arsac, Stéphane Dalmas and Marc Gaëtano, in Human Interaction in Symbolic Computing , Springer-Verlag, 1997.

An OpenMath 1.0 Implementation , Stéphane Dalmas, Marc Gaëtano and Stephen Watt, Proceedings of ISSAC 97, pp 241-248, 1997

To contact me ...

Stéphane Dalmas, last update on November 28th, 1998.