Evolution of a Computer System - UCSD Mathematics

JOMA

Journal of Online Mathematics and its Applications

Evolution of a Computer Application

John J. Wavrik Department of Mathematics University of California ? San Diego

Wavrik - 1

Abstract

In this article I discuss the process of producing a computer software system for mathematical research or instruction. I show how a mathematician can create a special-purpose computer language to facilitate development of a system.

Mathematical work benefits from the use of software that can be modified and extended as it is used. I show the process of creating a software system of this type by discussing several critical stages in the development of Groups32, a system for working with groups of low order.

JOMA

Journal of Online Mathematics and its Applications

Wavrik - 2

A version of the Groups32 system being discussed in this article is accessible on the Internet at . This web page contains instructions for accessing Groups32 via telnet and some written material including a sample session.

JOMA

Journal of Online Mathematics and its Applications

Table of Contents

Wavrik - 3

Introduction Tips on reading this article The Forth language (a brief introduction)

Groups16 (1990 version) Comments on Improvements Back to the Isomorphism Problem

Groups16 ? Transition First Subgroups Package Sets

Listing Subgroups Some Simple Programs

Groups32 Permutations Search User Interface

Summary

Resources

JOMA

Journal of Online Mathematics and its Applications

Wavrik - 4

Introduction

I address this article to mathematicians and mathematics educators. It is not about the use of a piece of software but rather about a methodology for producing software and about the electronic representation and manipulation of mathematics. In the article I show how a mathematician can produce a special purpose language for a subject area to facilitate writing programs in that area.

Computer programs are often "end products" -- like books, they remain relatively fixed after creation. The design and implementation of large software projects are most often in the hands of teams of experts in computer programming. The end user is not interested in the programming language or the developmental techniques, and, in fact, these things become invisible in the end product. The choice of language, however, can be a significant factor for ease in development, maintenance, and modification.

JOMA

Journal of Online Mathematics and its Applications

Wavrik - 5

In this article I discuss production of dynamic software systems that are targeted at specialized research and instructional areas and are extended and modified as part of their use. The user, designer, and implementer are often the same person. We need, for this work, a language and methodology that allow software to be developed and modified easily. We need to make it feasible for a mathematician, whose expertise lies in other areas, to become involved in the task of creating languages and software systems.

A source of difficulty in programming with conventional general-purpose languages is the gap between the means of expression provided by the language and the concepts of the subject area. We can reduce this gap by using a language specifically designed for a particular subject area. To do this in the realm of conventional compiled languages would require writing a custom compiler ? a formidable task. I will discuss and illustrate an approach that is the moral equivalent of writing a compiler ? but that is viable for a working mathematician.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download