(Slide 2)

The purpose in creating a computer language based on algebraic-topology is: 1) To enable specification of models of complex systems (and computations on such models) at a higher and therefore more meaningful level. We shall see examples from electrical circuits, elasticity, and fluid dynamics. In each case the specification of the model is similar to the informal descriptions used in deriving mathematical models, which are currently manually translated into a low level programming language such a C or FORTRAN. Such languages do not address the topological issues that are fundamental to creating models of complex systems, and therefore can offer no aid in taking advantage of these properties. Furthermore, important content is lost in this manual translation, e. g. , choice of data structures. This lack of an explicit path from the mathematical model used for understanding the system and the software used to compute properties of the system can make it very difficult to verify that software does what it is intended to. 2) To partition software so as to maximize the use of basic components. This is similar to the approach taken in numerical computing -- e. g. , the BLAS. The idea is that these basic components can be extensively debugged (once and for all), optimized, and so forth. When a new machine architecture is introduced, one need only implement the basic components in order to translate all applications using them. Because algebraic-topology provides a uniform means of relating the components of a complex system to the whole, much computer software, currently viewed as unrelated and independent, could be expressed in Chains.