Paul Chew, Robert L. Constable, Keshav Pingali, Steve Vavasis, Richard Zippel

* Computational science* will be the dominant paradigm for science
in the next century. This proposal addresses one of the major
challenges facing this new kind of science---the demand for better
software support for computational mathematics. The task of providing
this support is sufficiently central to the national interest and
sufficiently comprehensive that it could serve as a Grand Challenge
problem for computer science.

A strategy for meeting this challenge has evolved from inter-project
cooperation at Cornell on the elements of scientific computing. This
proposal represents a collaboration among five computer scientists
with diverse backgrounds: scientific computing, computational
geometry, computer algebra, applied logic, and programming languages.
In various combinations these people have worked together, and
software from their separate projects has been linked. Their
experience with the difficulty of this linking process has led to the
identification and to the prospective solutions of three major
problems: the * connectivity problem*, the * code generation
problem*, and the * explanation problem*. The problems and their
solutions are briefly explained below. This proposal outlines a plan
to design and implement an open system architecture that will
integrate a variety of computational science tools into an environment
that supports collaborative activity.

Many interesting and powerful tools exist to support computational
mathematics (for example, Matlab, Lapack, Mathematica, Axiom, Ellpack,
PLTMG, Autocad, and LEDA), but most of these are focused on one
specific area or on one specific style of computation. These systems
are largely self-contained and * closed*, connecting to other
software only at a very low level of abstraction, using, for instance,
string-to-string communication. They do not have a common semantic
base that would allow one system to ``collaborate'' with another.
This is the * connectivity problem*. To address the connectivity
problem, a common * mathematical bus* (the * MathBus*) will
serve as the backbone of the system. Its communication protocols will
be based on a typed formal language which provides the semantics for
collaboration. A major design objective is to raise the level of
communication among software tools, allowing the communication of
mathematical objects instead of being restricted to simple strings.

Although existing software has contributed substantially to scientific
programming productivity, the time taken to generate code remains a
major impediment to progress in computational science. This is the
* code creation problem*. In part, this problem is due to the
difficulty of expressing certain mathematical techniques as
subroutines. The problem of code creation is addressed with a method
of transformation and refinement, allowing the transformation of
high-level mathematical expressions into more-traditional code.

One of the reasons that sharing code with a colleague is difficult is
because there is no common language for explaining what a program does
and for precisely giving the conditions necessary to apply it. This
is the * explanation problem*. The solution to the connectivity
problem also provides an approach to explanation, namely to provide
formal and semi-formal semantic standards for communications and
linkage on the proposed MathBus.

The problem solutions outlined here lead to an additional opportunity. Once tools can inter-operate and mathematical models can be shared, it becomes possible to create collections of mathematical theorems, explanations, and examples and counterexamples. Such a mathematical database could capture an important part of mathematical knowledge that is at best poorly represented by books and journals.

**Paul Chew, Robert L. Constable, Keshav Pingali, Steve Vavasis, Richard Zippel**

- Introduction
- The Connectivity Problem
- The Code Creation Problem
- The Explanation Problem
- The Mathematical Database Opportunity
- Milestones
- Results from Prior NSF Support
- References
- Budget
- Current and Pending Support
- Facilities, Equipment and Other Resources
- About this document ...

Tue Nov 21 08:50:14 EST 1995