A Survey of User Interfaces for Computer Algebra Systems
---
paper_title: User Interface Considerations for Algebraic Manipulation Systems

paper_content:

The background of mathematical manipulation systems is presented. Current user interface tools and issues are then surveyed, with a focus on the special problems of algebraic manipulation systems. A mathematical expression editor is used as an illustrative example.
---
paper_title: Maple V Language Reference Manual

paper_content:

This text describes the Maple Symbolic Computation System and the Maple V language. It describes the numeric and symbolic expressions that can be used in Maple V. All the basic data types, such as names, polynomials and functions, as well as structured data types, are covered. The book also gives a complete description of the programming language statements that are provided in the Maple V system and shows how a user can extend the functionality of the Maple V system by adding user-defined routines. The manual also provides a complete description of the Maple V system, including its 2D and 3D graphics. Maple V features a newly designed user interface on many systems. Separate appendices describe how to use Maple V on systems using the X Window System, DOS and the Macintosh.
---
paper_title: GI/S: A graphical user interface for symbolic computation systems

paper_content:

The design and implementation of GI/S, a Graphical user Interface for Symbolic computation systems, is described. The system provides a multiple window environment for the high-resolution 2-D display of mathematical expressions, the ability to select and manipulate parts of expressions with a mouse, and graphics plotting of mathematical expressions. GI/S also provides command line editing and a history mechanism for editing and re-executing past commands. GI/S is written in Franz Lisp for the Macsyma system and has been implemented on the Tektronix 4404 workstation.
---
paper_title: A structural view of the Cedar programming environment

paper_content:

This paper presents an overview of the Cedar programming environment, focusing on its overall structure—that is, the major components of Cedar and the way they are organized. Cedar supports the development of programs written in a single programming language, also called Cedar. Its primary purpose is to increase the productivity of programmers whose activities include experimental programming and the development of prototype software systems for a high-performance personal computer. The paper emphasizes the extent to which the Cedar language, with run-time support, has influenced the organization, flexibility, usefulness, and stability of the Cedar environment. It highlights the novel system features of Cedar, including automatic storage management of dynamically allocated typed values, a run-time type system that provides run-time access to Cedar data type definitions and allows interpretive manipulation of typed values, and a powerful device-independent imaging model that supports the user interface facilities. Using these discussions to set the context, the paper addresses the language and system features and the methodologies used to facilitate the integration of Cedar applications. A comparison of Cedar with other programming environments further identifies areas where Cedar excels and areas where work remains to be done.
---
paper_title: An interactive graphical interface for REDUCE

paper_content:

The availability of workstations with bit-mapped displays opens up new possibilities for displaying and interacting with mathematical expressions. This paper describes an interactive graphical interface to Reduce. This system displays the output from Reduce in its natural, two dimensional form. The interactivity of the workstation is used to advantage in several ways, including allowing subexpressions to be selected using a mouse and reentered into Reduce.
---
paper_title: MathScribe: a user interface for computer algebra systems

paper_content:

This paper describes MathScribe, a powerful user interface for computer algebra systems. The interface makes use of a bitmapped display, windows, menus, and a mouse. Significant new features of MathScribe are its display of both input and output in two-dimensional form, its ability to select previous expressions, and its computationally efficient manner of displaying large expressions.
---
paper_title: EMACS the extensible, customizable self-documenting display editor

paper_content:

EMACS is a display editor which is implemented in an interpreted high level language. This allows users to extend the editor by replacing parts of it, to experiment with alternative command languages, and to share extensions which are generally useful. The ease of extension has contributed to the growth of a large set of useful features. This paper describes the organization of the EMACS system, emphasizing the way in which extensibility is achieved and used. ::: This report describes work done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for the laboratory's research is provided in part by the Advanced Research Projects Agency of the Department of Defense under Office of Naval Research contract N00014-80-C-0505.
---
paper_title: PowerMath: a system for the Macintosh

paper_content:

PowerMath is a symbolic algebra system for the MacIntosh computer. This paper outlines the design decisions that were made during its development, and explains how the novel MacIntosh environment helped and hindered the development of the system. While the interior of PowerMath is fairly conventional, the user interface has many novel features. It is these that make PowerMath not just another micro-computer algebra system.
---
paper_title: Capabilities of the MUMATH-78 computer algebra system for the INTEL-8080 microprocessor (invited)

paper_content:

This paper describes the capabilities of a microcomputer algebra system intended for educational and personal use. Currently implemented for INTEL-8080 based microcomputers, the system offers a broad range of facilities from indefinite-precision rational arithmetic through symbolic integration, symbolic summation, matrix algebra, and solution of a nonlinear algebraic equation. The talk will include a filmed demonstration, and informal live demonstrations will be given afterward.
---
paper_title: Template-based Formula Editing in Kaava

paper_content:

This paper describes a user interface for entering mathematical formulas directly in two-dimensional notation. This interface is part of a small, experimental computer algebra system called Kaava. It demonstrates a data-driven structure editing style that partially accommodates the user's view of formulas as two-dimensional arrangements of symbols on the page.
---
paper_title: Mathematica - A System for Doing Mathematics by Computer

paper_content:

This book will be released simultaneously with Release 2.0 of Mathematica and will cover all the new features of Release 2.0. This new edition maintains the format of the original book and is the single most important user guide and reference for Mathematica--all users of Mathematica will need this edition. Includes 16 pages of full-color graphics.
---
paper_title: Standard handbook of engineering calculations

paper_content:

This book provides engineering calculation procedures for solving routine and non-routine problems found in engineering fields such as aeronautical and astronautical, architectural, marine, nuclear, and sanitary. Activities of design, operation, analysis, and economic evaluation are covered.
---
paper_title: A Multiple-Representation Paradigm for Document Development

paper_content:

Powerful personal workstations with high-resolution displays, pointing devices, and windowing environments have created many new possibilities in presenting information, accessing data, and efficient computing in general. In the context of document preparation, this workstation-based technology has made it possible for the user to directly manipulate a document in its final form. The central idea is that a document is immediately reprocessed as it is edited; no syntactic constructs are explicitly used to express the desired operations. This so-called direct manipulation approach differs substantially from the traditional source language model, in which document semantics (structures and appearances) are specified with interspersed markup commands. In the source language model, a document is first prepared with a text editor, its formatting and other related processors are then executed, usually in batch mode, and the result is obtained. ::: In this dissertation, the concept of multiple representations is first examined. A complete document development environment's task domain is then identified and several aspects of such an environment under both source-language and direct-manipulation paradigms are compared and analyzed. A simple but robust framework is introduced to model multiple-representation systems in general. Based upon this framework, a top-down design methodology is derived. As a case study of this methodology, the design of V$\sb{\rm OR}$T$\sb{\rm E}$X (Visually-ORiented T$\sb{\rm E}$X), a multiple-representation environment for document development, is described. Focuses are on design options and decisions to solving the problems mentioned above. ::: Specifically, the design and implementation of V$\sb{\rm OR}$T$\sb{\rm E}$X's underlying representation transformation mechanisms in both the forward and backward directions (i.e., the incremental formatter in the forward direction and the reverse mapping engine in the backward direction) and the integration techniques used are discussed in detail. A prototype of the V$\sb{\rm OR}$T$\sb{\rm E}$X system has been implemented and it works. Finally, this multiple representation paradigm for document development is evaluated and the underlying principles with implications to other application domains are discussed. Some research directions are pointed out at the end. (Abstract shortened with permission of author.)
---
paper_title: Incremental parsing of expressions

paper_content:

Abstract In syntax-directed editors, the user edits some object on the screen according to the structure of that object. The appearance of the object is derived from some internal representation maintained by the editor. If the object is an expression, the editor maintains a tree-representation internally. During editing of an expression, a minor change in the appearance of an expression (e.g., ab × c is to be changed into a + b × c ) may necessitate a significant restructuring of this tree-representation. This article describes an algorithm that incrementally adjusts the tree-representation of an expression, while the user edits the expression in terms of its appearance rather than in terms of tree-transformations.
---
paper_title: Incremental parsing without a parser

paper_content:

This article describes an algorithm for incremental parsing of expressions in the context of syntax-directed editors for programming languages. Since a syntax-directed editor represents programs as trees and statements and expressions as nodes in trees, making minor modifications in an expression can be difficult. Consider, for example, changing a '' + '' operator to a ''*'' operator or adding a short subexpression at a syntactically but not structurally correct position, such as inserting '') * (d'' at the # mark in'' (a + b # + c)''. To make these changes in a typical syntax-directed editor, the user must understand the tree structure and type a number of tree-oriented construction and manipulation commands. This article describes an algorithm that allows the user to think in terms of the syntax of the expression as it is displayed on the screen (in infix notation) rather than in terms of its internal representation (which is effectively prefix), while maintaining the benefits of syntax-directed editing. This algorithm is significantly different from other incremental parsing algorithms in that it does not involve modifications to a traditional parsing algorithm or the overhead of maintaining a parser stack or any data structure other than the syntax tree. Instead, the algorithm applies tree transformations, in real-time as each token is inserted or deleted, to maintain a correct syntax tree.
---
paper_title: The T E Xbook

paper_content:

A semiconductor device is described containing at least two insulating gate field effect transistors in a common wafer. One of the transistors exhibits high gain but the other transistor exhibits low gain as a result of selectively implanting into its channel neutral ions and crystal damage which reduce the effective mobility of charge carriers therein. In one embodiment, the low gain transistor serves as a load for the high gain transistor. In a second embodiment, the low gain transistor is a parasitic transistor formed between adjacent circuit elements.
---
paper_title: Mathematical formula editor for CAI

paper_content:

Many students in lower grades who study mathematics with computers have difficulty in inputting formulas by using existing methods. It would be much easier for them if they could input formulas naturally, as they appear in textbooks. This paper describes such an interface program module for use in CAI. This module makes it easy for students to input and edit complex formulas solely by key operations, without using a mouse. The difference between the module and existing mathematical expression editors is that it converts formulas into character strings syntactically. In this way, CAI programs can understand the meanings of the formulas.
---
paper_title: An Automated Consultant for MACSYMA

paper_content:

A consultant is necessary whenever on is faced with a problem solving situation in a domain one does not fully understand. The lack of knowledge may be incidental, as it is when the domain or device is fairly simple but time constraints make it impossible for the user to learn all that is necessary. Computer systems like MACSYMA in which the level of commands is so close to the level of the task environment that the user is apt to confuse a simply defined procedure (like COEFF) with its mathematical counterpart (here coefficient) that it at best approximates. A computer program is described which has the capability of conversing with its user in English about a difficulty he has encountered, and providing information tailored to his need. The MACSYMA Advisor is a program distinct from MACSYMA with its own separate data base and expertise. For convenience the program can be called directly from MACSYMA and can access the user's data structures contained therein. The Advisor described here deals only with the "straightline" or nested use of MACSYMA commands and not loops or user-defined functions. The implementation of the Advisor relies heavily on an explict, internal "model" of the user's state of knowledge, his goals, and his "plan" for achieving them.
---
paper_title: Tracing occurrences of patterns in symbolic computations

paper_content:

A report is made on the present state of development of a project to construct a tracing aid for users of symbolic computing systems that are written in LISP (or, in principle, any similar high-level language). The traces in question are intended to provide information which is primarily in terms that are natural for a user, e.g. on patterns of actions performed on his data, or patterns occurring in the data themselves during the operation of his program. Patterns are described in a syntax which is inspired by SNOBOL.
---
paper_title: Logic and computation in MATHPERT: an expert system for learning mathematics

paper_content:

MATHPERT (as in “Math Expert”) is an expert system in mathematics explicitly designed to support the learning of algebra, trigonometry, and first semester calculus. This paper gives an overview of the design of MATHPERT and goes into detail about some connections it has with automated theorem proving. These connections arise at the borderline between logic and computation, which is to be found when computational “operators” have logical side conditions that must be satisfied before they are applicable. The paper also explains how MATHPERT maintains and uses an internal model of its user to produce individually tailored explanations, and how it dynamically generates individualized and helpful error messages by comparing user errors to its own internal solution of the problem.
---
paper_title: A knowledge-based approach to user-friendliness in symbolic computing

paper_content:

An experiment in making a symbolic computing system tolerant of technical deficiencies in programming by novice users is outlined. The work uses a knowledge-base of information on general properties of symbolic computations, and a pattern-matcher which can specify instances of relevant properties in a user's program or inputs. Both of these components are implemented in LISP, and have been used in conjunction with REDUCE.
---
paper_title: Representation of inference in computer algebra systems with applications to intelligent tutoring

paper_content:

Presently computer algebra systems share with calculators the property thai a sequence of computations is not a unified computational sequence, thereby allowing fallacies to occur. We argue thai if computer algebra systems operate in a fram,ework of strict mathematical proof fallacies are eliminated. We show that this is possible in a working interactive system, REQD. We explain why computaiional algebra, done under the strict constraints of proof, is relevant to uses of computer algebra systems in instruction.
---
paper_title: The Progress Towards an Intelligent Assistent - A Discussion Paper

paper_content:

Powerful computer workstations, communication networks, algebraic and numeric software systems are changing the way mathematicians work. Expert systems already provide user-friendly interfaces to several software tools, but will AI play a still larger role in the future? We open a discussion on the interaction of AI and Symbolic Mathematical Computation, and pose many questions which should be addressed.
---
paper_title: A practical method for LR and LL syntactic error diagnosis and recovery

paper_content:

This paper presents a powerful, practical, and essentially language-independent syntactic error diagnosis and recovery method that is applicable within the frameworks of LR and LL parsing. The method generally issues accurate diagnoses even where multiple errors occur within close proximity, yet seldom issues spurious error messages. It employs a new technique, parse action deferral, that allows the most appropriate recovery in cases where this would ordinarily be precluded by late detection of the error. The method is practical in that it does not impose substantial space or time overhead on the parsing of correct programs, and in that its time efficiency in processing an error allows for its incorporation in a production compiler. The method is language independent, but it does allow for tuning with respect to particular languages and implementations through the setting of language-specific parameters.
---
paper_title: Mathematica - A System for Doing Mathematics by Computer

paper_content:

This book will be released simultaneously with Release 2.0 of Mathematica and will cover all the new features of Release 2.0. This new edition maintains the format of the original book and is the single most important user guide and reference for Mathematica--all users of Mathematica will need this edition. Includes 16 pages of full-color graphics.
---
paper_title: The T E Xbook

paper_content:

A semiconductor device is described containing at least two insulating gate field effect transistors in a common wafer. One of the transistors exhibits high gain but the other transistor exhibits low gain as a result of selectively implanting into its channel neutral ions and crystal damage which reduce the effective mobility of charge carriers therein. In one embodiment, the low gain transistor serves as a load for the high gain transistor. In a second embodiment, the low gain transistor is a parasitic transistor formed between adjacent circuit elements.
---
paper_title: How to write a long formula

paper_content:

Standard mathematical notation works well for short formulas, but not for the longer ones often written by computer scientists. Notations are proposed to make one or two-page formulas easier to read and reason about.
---
paper_title: A System Independent Graphing Package for Mathematical Functions

paper_content:

SIG is a compact graphics system for the display of curves and surfaces defined by mathematical formulas in a symbolic system. It is available from Kent State University. SIG consists of two parts: xgraph and mgraph that run as concurrent processes. Xgraph is a stand-alone graphics facility written in C to work with the X Window System. Mgraph is the part that is symbolic system dependent. SIG achieves display device independence through X and portability through mgraph. Capabilities of SIG, its design and implementation, as well as plans for further development are presented.
---
paper_title: GI/S: A graphical user interface for symbolic computation systems

paper_content:

The design and implementation of GI/S, a Graphical user Interface for Symbolic computation systems, is described. The system provides a multiple window environment for the high-resolution 2-D display of mathematical expressions, the ability to select and manipulate parts of expressions with a mouse, and graphics plotting of mathematical expressions. GI/S also provides command line editing and a history mechanism for editing and re-executing past commands. GI/S is written in Franz Lisp for the Macsyma system and has been implemented on the Tektronix 4404 workstation.
---
paper_title: MathScribe: a user interface for computer algebra systems

paper_content:

This paper describes MathScribe, a powerful user interface for computer algebra systems. The interface makes use of a bitmapped display, windows, menus, and a mouse. Significant new features of MathScribe are its display of both input and output in two-dimensional form, its ability to select previous expressions, and its computationally efficient manner of displaying large expressions.
---
paper_title: IZIC: a Portable Language-Driven Tool for Mathematical Surfaces Visualization

paper_content:

This paper presents IZIC, a stand-alone high-quality 3D graphic tool driven by a command language. IZIC is an interactive version of ZICLIB, a 3D graphic library allowing efficient curve and surface manipulations using a virtual graphic device. Capabilities of ZICLIB include management of pseudo or true colors, illumination model, shading, transparency, etc. As an interactive tool, IZIC is run as a Unix server which can be driven from one or more Computer Algebra Systems, including Maple, Mathematica, and Ulysse, or through an integrated user interface such as CAS/PI. Connecting IZIC with a different system is a very simple task which can be achieved at run-time and require no compilation. Also important is the possibility to drive IZIC both through its freely-reconfigurable menus-buttons user interface, and through its command language, allowing for instance the animation of surfaces in a very flexible way.
---
paper_title: PowerMath: a system for the Macintosh

paper_content:

PowerMath is a symbolic algebra system for the MacIntosh computer. This paper outlines the design decisions that were made during its development, and explains how the novel MacIntosh environment helped and hindered the development of the system. While the interior of PowerMath is fairly conventional, the user interface has many novel features. It is these that make PowerMath not just another micro-computer algebra system.
---
paper_title: Iris: design of an user interface program for symbolic algebra

paper_content:

We present the design of a user interface program that can be used with Maple and other symbolic algebra packages. Through the use of a standard communications protocol to such a program, symbolic algebra packages can shed the bulk of code not directly related to algebraic manipulations but can still use the facilities of a powerful user interface. This interface program is designed to be used on a variety of workstations in a consistent fashion.
---
paper_title: Building a Computer Algebra Environment by Composition of Collaborative Tools

paper_content:

Building a software environment for Computer Algebra is quite a complex issue. Such an environment may include one or more Symbolic Computation tools, some devices, such as plotting engines or code generators, and a way to link others scientific applications. It is also expected that any of these components may be run on a remote processor and that the whole system is used via a convenient graphical user interface. The natural extensibility of Computer Algebra software, as well as the diversity of the needs expressed by their users, necessitate a highly open and customizable software architecture allowing different kinds of extensions and adaptations. Our approach consists of building the environment by composition of separately developed packages, using state of the art software engineering technologies in the spirit of the tool integration paradigm. This way, the different software components should be able to exchange data and freely cooperate with each other, without being too tightly coupled as in a monolithic system. A prototype of such an environment is currently under development in the framework of the SAFIR project. It will be built using an implementation of the software bus concept developed for the next version of Centaur, and should include a set of components, developed both internally and externally, and a homogeneous user interface.
---
paper_title: Tcl and the Tk Toolkit

paper_content:

Copyright © 1993 Addison-Wesley Publishing Company, Inc. All rights reserved. Duplication of this draft is permitted by individuals for personal use only. Any other form of duplication or reproduction requires prior written permission of the author or publisher. This statement must be easily visible on the first page of any reproduced copies. The publisher does not offer warranties in regard to this draft.
---
paper_title: EMACS the extensible, customizable self-documenting display editor

paper_content:

EMACS is a display editor which is implemented in an interpreted high level language. This allows users to extend the editor by replacing parts of it, to experiment with alternative command languages, and to share extensions which are generally useful. The ease of extension has contributed to the growth of a large set of useful features. This paper describes the organization of the EMACS system, emphasizing the way in which extensibility is achieved and used. ::: This report describes work done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for the laboratory's research is provided in part by the Advanced Research Projects Agency of the Department of Defense under Office of Naval Research contract N00014-80-C-0505.
---
paper_title: Your own handprinting recognition engine

paper_content:

This invention relates to a process for separating nickel, cobalt and copper wherein a molten mixture containing either or both of nickel and cobalt and copper as an alloy and a matte or either of them is mixed in the presence of a matte, metallic iron and carbon to form a high carbon ferrous alloy and a matte in two separate phases. Both nickel and cobalt or either of them is extracted predominantly in the high carbon ferrous alloy and copper is extracted predominantly in the matte.
---
paper_title: Computer input/output of mathematical expressions

paper_content:

Studying mathematics is, in part, a language problem. Naturally, mathematicians are more likely to resist using a computer as a tool in their work if the tedious task of learning a new language for mathematics is part of the bargain. Furthermore, until a new language is thoroughly learned, difficulty in communication will make it less likely that their new experience will be a successful one. Beyond that, if a new computer language does not provide the same visual clues as standard mathematical notation, it may never adequately serve the mathematician. It therefore seems fair to assume that the computer input/output of mathematical expressions in a form resembling standard notation is an important goal. This form of expression is considerably more complex and expensive to handle than those used in, for example, the programming language FORTRAN. But the alternative (e.g., correctly manipulating a one page FORTRAN expression) is often quite painful.
---

Title: A Survey of User Interfaces for Computer Algebra Systems

Section 1: Introduction
Description 1: Discusses the scope of the paper, problems with current CAS interfaces, and the goals of the survey.

Section 2: Previous Surveys and Overview Works
Description 2: Reviews previous efforts and significant publications in improving CAS interfaces.

Section 3: History
Description 3: Provides a historical perspective on the development of CAS interfaces from batch processing systems to the present.

Section 4: Numerical Interfaces
Description 4: Describes systems for numerical calculations with two-dimensional editing capabilities developed by MathSoft Inc.

Section 5: Document Processing Systems
Description 5: Relates CAS interfaces to document processing systems that can typeset mathematics and discusses their methods.

Section 6: Artificial Intelligence and Education
Description 6: Explores AI-directed attempts to improve CAS usability and the use of CAS in education.

Section 7: Entering Expressions
Description 7: Discusses the various methods used for entering expressions in traditional and modern CAS interfaces.

Section 8: Selecting and Editing Expressions
Description 8: Describes how different interfaces allow users to select and edit parts of mathematical expressions.

Section 9: Direct Manipulation
Description 9: Discusses the concept and implementation of direct manipulation of mathematical expressions in CAS interfaces.

Section 10: Formatting and Displaying Expressions
Description 10: Examines the ways in which CAS interfaces format and display mathematical expressions.

Section 11: Ambiguous Notation
Description 11: Discusses the issues and solutions regarding ambiguous mathematical notations in CAS interfaces.

Section 12: Session Layout
Description 12: Explores how different CAS interfaces manage session layouts and the organization of input and output.

Section 13: Graphics
Description 13: Describes the integration of graphical capabilities in CAS interfaces for plotting curves and surfaces.

Section 14: Portability to Different CASs
Description 14: Discusses the challenges and solutions for creating user interfaces that are portable across different CASs.

Section 15: Extensibility of the User Interface
Description 15: Examines the importance of extensibility in CAS interfaces to handle new notations and functionalities.

Section 16: Efficiency Considerations
Description 16: Discusses the efficiency aspects of CAS interfaces in terms of space and time, especially when dealing with large expressions.

Section 17: Alternative Input Technologies
Description 17: Explores the use of alternative input technologies such as handwriting and speech recognition in CAS interfaces.