NAPSS(ID:231/nap004)

Non-procedural language for solving mathematical problems  


for Numerical Analysis Problem Solving System.

Non-procedural language for solving mathematical problems

Rice and Roser Purdue 1965.

Places
People:
Structures:
Related languages
PL/I => NAPSS   Release written using
PUFFT => NAPSS   Protype written using

References:
  • Rice, J.R. et al, "NAPSS A Numerical Analysis Problem Solving System" view details
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Guynn review of Rice 1967 view details Extract: Review
    This paper is two things: a brief, informal description of a problem-oriented language and an introduction to the rapidly advancing concept of internal decision-n1al~illg in numerical analysis.

    GPSS is an algebraic language extension which provides certain useful numerical analysis features such as differentiation, integration, and approximation of functions, and solution of algebraic, transcendental, or differential equations. The inclusion of these features as part of the language attempts to allow those not expert in numerical analysis to solve a large class of problems without knowledge of the numerical analysis or of the method behind the solution. Diagnostics are provided which warn the user when certain accuracies are unattainable, certain problems are unsolvable, or certain troubles are to be expected.

    The authors call polyalgorithms the intrinsic procedures used to provide the numerical analysis features. As opposed to a procedure which attempts to solve all problems in a given class by one method, a polyalgorithm attempts to let the computer choose the best of several methods on hand for the solution of a given problem in the class. TWO examples of polyalgorithms are given; the first finds the zeroes of a polynomial and the second approximates functions. The first includes both ~ewton's and Bernoulli's methods; the second includes numerous fitting techniques. Each polyalgorithm includes a strategy for selecting the best method.


          in ACM Computing Reviews 8(02) March-April 1967 view details
  • Roman, R.V. L.R. Symes, and "Implementation Considerations in a Numerical Analysis Problem Solving System" view details
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Symes, L.R. "A Mathematical Problem Solving Language and its Interpreter" Purdue CS TR 44 view details Abstract: The first section of this thesis presents the case for and the distinguishing characteristics of a mathematical problem solving system. The characteristics of NAPSS and five other systems which have been developed for solving mathematical problems are reviewed.
    The second section describes the language of the Numerical Analysis Problem Solving System: NAPSS. The remainder of this thesis describes the various sections of the interpreter for the NAPSS Language. The structure of the interpreter is presented. A detailed description is given of the manner in which the arithmetic expression evaluator manipulates the different operators and the various data types. In addition, a description is given of the implementation of each of the assignment statements.
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Symes, L.R. and Roman, R.R. "NAPSS Primer", Purdue University, SD TR 8, April 1967. view details
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Symes, L.R. and Roman, R.V. "Structure of a Language for a Numerical Analysis Problem Solving System" view details
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. p.299. view details
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Symes, L.R. and Roman, R.V. "Syntactic and Semantic Description of the Numerical Analysis Programming Language" (NAPSS), CSD TR 11 (Revised), September 1969. view details
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Symes, Lawrence R. "A Mathematical Problem Solving Language and Its Interpreter." Advisor: J. R. Rice Purdue CS PHd May 1969 view details External link: Citation
          in ACM Symposium on "Interactive Systems for Experimental Applied Mathematics", editors Klerer and Reinfelds, Washington, D.C., August 1967 view details
  • Smith, Lyle B. "A Survey of Interactive Graphical Systems for Mathematics" view details Extract: NAPSS
    NAPSS

    As stated by Rice and Rosen (1966), the aim in the design of NAPSS (Numerical Analysis Problem Solving System) " . . . is to make the computer behave as if it had some of the knowledge, ability and insight of a professional numerical analyst." Other references to NAPSS are Rice (1967), Roman and Symes (1967, 1968), Symes and Roman (1967), and Symes (1969a, b).

    To implement the above stated aims, the researchers at Purdue University, Lafayette, Indiana, are developing "polyalgorithms" to be the numerical analysts behind the keyboard (on-line console). The polyalgorithms will be "...formed by the synthesis of a group of numerical methods and a logical structure into an integrated procedure for solving a specific type of mathematical problem."

    NAPSS is currently under development at Purdue. Several polyalgorithms have been developed to various levels of sophistication, see Rice (1967). The system is planned to be run in a time-sharing environment at on-line remote consoles including graphical capabilities; however, NAPSS programs will be executable as batch jobs as well. The system is expected to be useful as a device for teaching as well as for solving problems in numerical analysis.

    The polyalgorithms being developed are shown in the following list:
    a) linear equation solver (employs LU decomposition and SOR methods depending on the size of matrix involved) ;
    b) nonlinear equation solver, see Rice (1969);
    c) solve f(x) = 0 (one variable);
    d) solve differential equations;
    e) perform differentiation;
    f) determine polynomial zeros;
    g) integration (may use Romberg); and
    h) approximation (including the following: least squares polynomial, least squares with user'specified functions, pseudo least squares by ae ~* ~- b, pseudo least squares by a -{- b(x -{- c) e, minimax broken line, pseudo minimax piecewise cubic with continuous derivatives, and least squares nonlinear cubic splines).

    The NAPSS language is being developed as an interactive, problem oriented language, the purpose being to state numerical problems in a mathematical-like notation with direct manipulation of arrays and functions. The language will include a procedural language for expressing user defined algorithms, but efforts are being made to eliminate all unnecessary clerical operations sometimes associated with procedural language implementations.

    In its final form, NAPSS will be able to compile and run or to run interpretively. As of July 1969, assignment statements in all of their forms, the facilities for storing and manipulating most of the data types, the type statement, and the flow of control statements had been completed. Procedures and PLOT statements could be compiled but not run interpretively. The completed polyalgorithms were incorporated as functions and operators. The SOLVE statement, the TABLE statement, and the other unfinished portions were expected to be completed soon.

    Model 33 teletypes and the ARDS display (Figure 5) were being used as consoles in July 1969. The necessary software to utilize a CDC 250 graphical display was under development and plans were to have it completed within a few weeks. Considerable effort will be expended to add editing facilities to the system.
          in [ACM] ACM Computing Surveys 2(4) Dec1970 view details
  • Symes, L.R. "Manipulation of Data Structures in a Numerical Analysis Problem Solving System - NAPSS" view details
          in [AFIPS] Proceedings of the 1970 Spring Joint Computer Conference SJCC 36 view details
  • Symes, L.R. "NAPSS -- A Numerical Analysis Problem Solving System" view details
          in [AFIPS] Proceedings of the 1970 Spring Joint Computer Conference SJCC 36 view details
  • Symes, Lawrence R. "Evaluation Of NAPSS Expression Involving Polyalgorithms, Functions, Recursion, And Untyped Variables" view details
          in ACM Symposium on "Mathematical Software", 1970, editor J.R. Rice, view details
  • Symes, L.R. "NAPSS" view details
          in Canadian Information Processing Society Magazine, February 1971 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 408 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in ACM Computing Reviews 15(04) April 1974 view details
  • Leavenworth, Burt M.; Sammet, Jean E. "An overview of nonprocedural languages" pp1-12 view details Abstract: This paper attempts to describe some of the basic characteristics and issues involving the class of programming languages commonly referred to as ?nonprocedural? or ?very high level?. The paper discusses major issues such as terminology, relativeness, and arbitrary sequencing. Five features of nonprocedural languages are described, and a number of specific languages are discussed briefly. A short history of the subject is included.

          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details