ALGY(ID:363/alg053)

Formula manipulation language 


A system to manipulate expressions; Early language for symbolic maths.

from Sammet:
"The earliest attempt at a reasonably general system found by me was ALGY, developed by Bernick, Collender, and Sanford [BM61] prior to 196l. It was an interpretive routine for the Philco 2000. It allowed expressions written in a notation similar to FORTRAN as input, except that the $ was used instead of the ** for exponentiation.
The following commands were available:

EQUAT INQT BUGG

Record on tape an expression and its name. Rename an expression already on tape. Search the tape for name that is to be "bugged" and delete it. OPEN Remove parentheses from an algebraic expression; it performs the necessary algebraic multiplication, groups identical terms, and sorts them in quasi-alphabetical manner. SBST Substitutes one or more expressions in a given expression. FCTR Factor a given expression with respect to a single variable or powers of a single variable. TRGA Expand a product of sine and cosine functions to a sum of sine and cosine functions of multiple angles. DONE Control word for permitting several independent problems to be processed during the same run. Notice that there is no arithmetic defined, nor is there any facility for loop control or control transfers.

Although ALGY apparently never received too much usage or publicity, I consider it a major contribution to the field because it was the first system to try to provide multiple capabilities on a general class of expressions all in one system. In fact, for some ideas, ALGY was a conceptual forerunner to FORMAC."

Hardware:
References:
  • Bernick, M. D., Callender, E. D., Sanford, J. R. "ALGY-an algebraic manipulation program", pp. 389-392 view details Extract: ALGY
    This describes the language of ALGY, which is the first general system with a specific higher level language.
          in [JCC 19] Proceedings of the Western Joint Computer Conference, May 1961 view details
  • Brown, J. H. review of Bernick 1961 view details Abstract: The ALGY program is designed to provide the user with a means for manipulating algebraic expressions. The ALGY operations available are: OPEN -- "Remove parentheses from an algebraic expression;" SSEX "Substitute one or more expressions in a. given expression;" FCTR -- "Factor a given expression with respect to a single variable;" and TRGA -- "Expand a product of sin and cos functions of a given argument to a sum of sin and cos functions of multiple angles."

    In addition to the above operations, there are four control operations: EQAT (equate) -- "Let the symbol on the left-hand side of the equality sign be the name of the right-hand side expression;" INaT (internal equate) -- "filename an expression already named;" EGG ("unequate") -- "Remove the name of an expression;" and DONE -- "The end of this particular problem."

    From the example given in the report, the language appears to be simple and not too far removed from normal algebraic notation. Note to language makers: The dollar sign ($) is used to indicate exponentiation. The authors point out that the user must know how to manipulate his algebraic expressions to start with. All ALGY does is to remove the (sometimes almost impossible) task and burden of actually doing the manipulation from the user, allowing a computer to do the job.

    ALGY is a tool to be used wisely and, quoting the authors in their concluding remarks, "It enables the mathematician to consider and to solve problems that he would otherwise never consider because of the large amounts of algebraic manipulation necessary for a solution. It enables him to try different forms or a solution and use a different approaches to the same problem, where before he was often committed to just one approach because of the large amount of time necessary to verify that one method."

          in ACM Computing Reviews 3(04) July-August 1962 view details
  • Sammet, Jean E. "Survey of formula manipulation" view details
          in [ACM] CACM 9(08) August 1966 view details
  • Sammet, Jean E. "Formula Manipulation by Computer" view details Extract: ALGY
    The ALGY system is an illustration of the development of a specific individual language to handle formula manipulation. It might be true ? although it seems unlikely ? that extending this concept to develop a general purpose language just for formula manipulation would be a worthwhile endeavor. However, it is the view of the author that very much of what one wants to do in the general area of formula manipulation involves numerical capability, loop control, and input-output. All these items are of necessity provided in any higher level language. The advantage to developing an individual language, of course, is that it can be tailor-made for the specific needs, without restrictions and constraints  imposed by a language which  was really developed for other purposes. The advantages of using an existing language are that (1) one can benefit from the extensive results already obtained in language design, user training, and possibly implementations, and (2) it reduces the needless diversity of languages in the programming field.
          in Advances in Computers, Vol. 8 FL Alt and M Rubinoff (Eds.), Academic Press, New York, 1967 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
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. p.520. view details Extract: Algy
    The earliest attempt at a reasonably general system found by me was ALGY, developed by Bernick, Collender, and Sanford [BM61] prior to 196l. It was an interpretive routine for the Philco 2000. It allowed expressions written in a notation similar to FORTRAN as input, except that the $ was used instead of the ** for exponentiation.
    The following commands were available:

    EQUAT Record on tape an expression and its name.
    INQT Rename an expression already on tape.
    BUGG Search the tape for name that is to be "bugged" and delete it.
    OPEN Remove parentheses from an algebraic expression; it performs the necessary algebraic multiplication, groups identical terms, and sorts them in quasi-alphabetical manner.
    SBST Substitutes one or more expressions in a given expression.
    FCTR Factor a given expression with respect to a single variable or powers of a single variable.
    TRGA Expand a product of sine and cosine functions to a sum of sine and cosine functions of multiple angles.
    DONE Control word for permitting several independent problems to be processed during the same run. Notice that there is no arithmetic defined, nor is there any facility for loop control or control transfers.

    Although ALGY apparently never received too much usage or publicity, I consider it a major contribution to the field because it was the first system to try to provide multiple capabilities on a general class of expressions all in one system. In fact, for some ideas, ALGY was a conceptual forerunner to FORMAC.

          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
  • 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 26 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 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