SYMBOLANG(ID:241/sym005)

Symbol manipulating FORTRAN 


Lapidus & Goldstein, New York Univ., New York  1965.

Symbol manipulating FORTRAN subroutine package for IBM 7094, later CDC6600.

A set of subroutines useful for handling polynomials and rational functions. (Sammett 1966)



Hardware:
Related languages
FORTRAN IV => SYMBOLANG   Augmentation of

References:
  • Lapidus & Goldstein, "Some Experiments in Algebraic Manipulation" view details Abstract: A set of subroutines to allow algebraic manipulations on the IBM 7094 computer has been written using a List Processor, SLIP. A series of four problems of increasing difficulty were solved using these routines. Extract: Introduction
    Introduction
    Symbolic algebraic manipulation is an area of non- numeric application of digital computers which has recently attracted considerable interest. In fact, several groups have already written programs and systems of this Wpe. Three highly developed systems are Bell's ALPAK [1], IBM's FORMAC [2] and the exciting work of Perlis and Iturriaga [13] in which symbol manipulation was introduced directly into the syntax of the Carnegie ALGOL Compiler. Since none of these systems was directly applicable to our needs, and to gain experience, we decided to develop our own routines for algebraic manipulation. We call the collection of these routines for the IBM 7094, SYMBOLANG.

    Limited work had already been done here in the non-numerical area. Successful fluid dynamics computations using analytic continuation [3, 4, 5] led ultimately to a package of routines for manipulating power series in two variables [6]. A symbolic differentiation subroutine had also been written [7]. Neither of these was intended to be a general purpose manipulator; the power series package did not allow the use of explicit variables and the differentiator did not allow further Mgebraie or numerical manipulation.

    The strategy we adopted for this project was to attempt to solve a sequence of algebraic problems of increased difficulty. The necessary subroutines would then form the basis for further work in developing a capacity for algebraic manipulation applicable to an increasing variety of problems. Furthermore, this system was to be experimental. We realized that as soon as a few problems were solved we would probably want to use the information obtained from a first try to write a more efficient and useful set of routines.

    At the outset, the points which needed consideration were those which dealt with the representation of algebraic expressions; in particular, notation and memory organization. These points are discussed in Sections 2 and 3. Section 4 consists of descriptions of routines which were developed for algebraic manipulation. With these routines, four problems were attempted and solved. These problems, in order of difficulty, were (1) to expand and simplify a polynomial in three variables, (2) to substitute one truncated power series into another, (3) to obtain the series solutions of two ordinary differential equations by equating coefficients, and (4) to obtain a partial expansion of the Fourier series solution to Laplace's equation on a rectangular region with one irregular boundary. Their solutions are described in Section 5.
    DOI
          in [ACM] CACM 8(08) August 1965 view details
  • Tobey, Robert G. "Eliminating monotonous mathematics with FORMAC" view details Abstract: The FORMAC (FORmula MAnipulation Compiler) programming system provides a powerful tool for performing mathematical analysis. It is an extension of FORTRAN IV which permits the use of the computer to perform the tedious algebraic computations that arise in many different fields. Among the areas in which it has been successfully used are: differentiation of complicated expressions; expansion of truncated power series, solution of simultaneous equations with literal coefficients, nonlinear maximum likelihood estimation, tensor analysis, and generation of the coefficients of equations in Keplerian motion. These types of analysis—which arose in the solution of specific practical problems in physics, engineering, astronomy, statistics and astronautics—are discussed in the paper. In addition to its usage for specific problem solutions, FORMAC can also be used to automate the analysis phase in certain production programming. Several such applications are presented.
    Extract: Introduction
    Introduction
    Scientists and engineers spend a sizeable portion of their time performing mathematical analysis. A large part of this analysis is tedious; i.e., it is conceptually straightforward and only requires mechanical skill from the human protagonist. Some of this analysis can be performed with numeric techniques; indeed, the high speed computer has made it possible and practical to utilize many numeric techniques for this kind of problem solving. But what about symbolic mathematics? If computers are so adept at performing well-structured, carefully defined tasks, why not use them to do tedious - but symbolic - mathematical analysis? Over the past thirteen years many efforts have been made in this direction. A more recent accomplishment has been the development of FORMAC. FORMAC is an experimental programming system, which runs under IBSYS on the IBM 7090 and 7094 computers, and has been available since November 1964. More recently it has been available on the direct couple system (it runs in direct couple mode).

    This paper presents a selected sample of FORMAC applications to scientific and engineering problems. As early as 1953, Kahrimanian and Nolan, working independently, developed programs for performing analytic differentiation. During the ensuing years, a great deal of work directed toward performing tedious algebra and repetitive analysis has been performed. But until recently this work consisted of special coding efforts to accomplish a single symbolic computation or of efforts to produce general symbol manipulating systems such as LISP or IPL V.

    Recent developments include ALPAK, Formula ALGOL and FORMAC. Each of these is a programming system designed to provide some type of mathematical expression manipulation capability. Of these, only Formula ALGOL and FORMAC provide the capability to manipulate general expressions; ALPAK is a polynomial and rational function system. Applications of these three programming systems to practical problems have been documented only for ALPAK and FORMAC.

    Originally, the ALPAK language was FAP; one coded using the ALPAK macros (which contained calls to the ALPAK subroutines) to manipulate ratios of polynomials. A higher level language, ALTRAN, is currently under development for the ALPAK system.

    FORMULA ALGOL is an extension of ALGOL that provides tools for formula manipulation, list processing and limited string manipulation. It includes the numeric and control capability of ALGOL and is a more general programming language than either ALPAK or FORMAC, due to the inclusion of list and string processing capabilities. Formula ALGOL does not include specific expression manipulating commands; however, a general capability is provided by which the user may write his own expression-manipulating procedures. For example, the user must write his own expansion and automatic simplification routines. The first Formula ALGOL was an experiment in extending the ALGOL language. The language of the revised Formula ALGOL is sketched in [...]. This system was demonstrated at the SICSAM Symposium in March, 1966.

    The FORMAC language is an extension of FORTRAN IV; hence it contains FORTRAN IV as a proper subset. All the numerical capability of FORTRAN as well as the I/O and loop control capability are available in FORMAC. In fact, knowledgeable FORTRAN programmers experience little difficulty in learning the fundamentals of FORMAC; this can be accomplished by browsing through the FORMAC Manual in a morning. FORMIC provides specific expression-manipulating commands such as EXPAND and automatic expression simplification (AUTSIM) as a central part of the system.

    The main purpose of this paper is twofold: (a) to discuss technical areas in which useful application has been made of the FORMAC system, and (b) to display and discuss the FORMAC expression manipulation capabilities which were essential in implementing these applications. The following have proved to be valuable attributes of the FORMAC system:
    (1) Access to the capability is via a high level programming language that is easy to learn and use.
    (2) The system manipulates general mathematical expressions including elementary transcendental functions of arbitrary complexity and depth of function nesting.
    (3) Automatic simplification of expressions [13] and a versatile differentiation operator are provided as an integral part of the system.
    (4) Expressions with either rational or floating-point coefficients may be manipulated.
    (5) An interface is provided between the FORMAC symbolic capability and the FORMAC numeric capability so that symbolic analysis and numerical evaluation may be performed in the same program.
    (6) The FORMAC programming system is embedded in IBSYS so that the full power and versatility of a general purpose monitor system is available to the FORMAC user.

    Problems which occur in doing symbolic mathematics by computer are also discussed. The basic limitations on expression manipulation by computer which arise due to expression size, due to the time required to manipulate expressions, due to the size of integer coefficients and due to roundoff in floating-point coefficients are touched upon.

    The applications are discussed in alphabetical order according to the application area and include aerolasticity, Bessel functions for large arguments, celestial mechanics, combinatorial analysis, curve fitting, differential equations, error-bound calculations, incomplete beta function, nonlinear maximum likelihood estimation and tensor calculus. They cover an entire spectrum from one-shot applications that have produced new mathematical results, through converted FORTRAN production programs, which can accept arbitrary functions as input and perform at object time the "preliminary analysis" that used to be done by hand prior to coding in the source language. Many other applications of the FORMAC system have been made. Applications not discussed here include: plasma physics, generation of Jacobi polynomials, stability analysis, symbolic integration of rational functions, crystal field theory, Thiele continued fraction expansions, game theory, symmetric polynomials, circuit design, generation of Frame's convergents, Fourier waveform analysis and a study of vehicle re-entry.


          in [ACM] CACM 9(10) October 1966 view details
  • Sammet, Jean E. "Revised Annotated Descriptor Based Bibliography for the Use of Computers for Non-Numerical Mathematics" view details
          in Bobrow, D. G. (ed) "Symbol Manipulation Languages and Techniques", Proceedings of the IFIP Working Conference on Symbol Manipulation Languages. North-Holland Publishing Co., Amsterdam, 1968 view details
  • Bernstein, Herbert J "The Algebra Manipulation Package, SYMBOLANG" view details
          in Findler, Nicholas et al "Four high-level extension of FORTRAN IV : SLIP, AMPPL-II, TREETRAN, SYMBOLANG" New York : Spartan Books, 1972 view details
  • Findler, Nicholas [Foreword] view details
          in Findler, Nicholas et al "Four high-level extension of FORTRAN IV : SLIP, AMPPL-II, TREETRAN, SYMBOLANG" New York : Spartan Books, 1972 view details