Formula ALGOL(ID:159/for034)

ALGOL dialect for algebraic manipulation 


ALGOL extension for symbolic math, strings and lists. Also called FORML (pronounced "formal")

A.J. Perlis & R. Iturriaga Carnegie, 1962.  Implemented on a CDC G-20,

An extension of ALGOL to allow formal data types and their manipulations, and string and list pro cessing capabilities. (Sammett 1966)


People:
Structures:
Related languages
FSL => Formula ALGOL   Written using
Perlis and Smith string command language => Formula ALGOL   Evolution of

References:
  • Perlis et al, A.J. "An Extension of ALGOL for Manipulating Formulae", view details
          in [ACM] CACM 12(08) (Aug 1969) view details
  • Rosen, Saul "Compilers for student jobs" pp141.301-141.302 view details Extract: Formula Algol etc
    Several quite different approaches to languages and systems for student Jobs have been used at various Universities. [... Some] feel that the language available to students should be a very rich language. It may be necessary to start by teaching only subsets of such languages, but the students will soon be in a position to do the more interesting and complicated things that a computer can do and they will want a language with greater capabilities than Standard Fortran Systems now offer. [...] The various GATE systems and more recently an enriched Algol 3 system at Carnegie Tech are based on a similar philosophy.
          in Proceedings of the 19th ACM national conference January 1964 view details
  • Perlis, A. J., Iturriaga, R., and Standish, T. A. "A preliminary sketch of formula ALGOL" Carnegie Inst. of Technology Report, April 9, 1965 view details
          in Proceedings of the 19th ACM national conference January 1964 view details
  • Iturriaga, Renato, Tim Standish, Rudy Krutar, and Jay Earley "The Implementation of Formula Algol in FSL" view details
          in Proceedings of the 19th ACM national conference January 1964 view details
  • Iturriaga, Renato; Standish, Tim; Krutar, Rudy and Earley, Jay "Techniques and Advantages of using a Formal Compiler Writing System FSL to implement a Formula ALGOL Compiler" pp241-52 view details
          in [AFIPS] Proceedings of the 1966 Spring Joint Computer Conference SJCC 28 view details
  • Perlis, A. J., Iturriaga, R., and Standish, T. A. "A definition of Formula ALGOL" view details
          in [ACM] CACM 9(08) August 1966 view details
  • Sammet, Jean E. "Survey of formula manipulation" view details
          in [ACM] CACM 9(08) August 1966 view details
  • Iturriaga, R. Contributions to Mechanical Mathematics. Carnegie-Mellon University Dept. of Computer Science (Pittsburgh, Pa.) PhD thesis May 27 1967 view details Abstract: We describe the experience relating to the design of a programming language, Formula Algol, which is suitable for describing algorithms that mechanize
          in [ACM] CACM 9(08) August 1966 view details
  • Sammet, Jean E., "Roster of Programming Languages 1967" view details
          in Computers & Automation 16(6) June 1967 view details
  • Davis, M. S. "Programming Systems for Analytical Developments on Computers" The Astronomical Journal 73(3) April 1968 view details Extract: Introduction
    In March 1958 a Celestial Mechanics Conference was held at Columbia University and the Watson Scientific Computing Laboratory in New York (Davis 1958). One of the topics discussed was the possibility of constructing general-purpose compilers capable of carrying out literal theories in celestial mechanics. Such a compiler, according to Grosch, should be capable of performing the manipulations of complicated algebra as well as differentiation and integration of a limited class of functions. He estimated that 200 man-years of effort would be needed to program a completely literal theory, such as Delaunay's. That the programming language may be of crucial importance in endeavors of this kind is emphasized by the fact that Barton (1966) carried out the literal development of the lunar disturbing function to the sixth order in 2 min, to the eighth order in 7 min, and to the tenth order (two orders of magnitude beyond Delaunay) in 50 min. Barton noted that it took less than 6 h of programming effort to write this program. To complete and extend
    the work of Delaunay additional programming has to be done for the manipulations of the transformation theory. More about Barton's work later.
    Three problems were recognized almost ten years ago relative to the development of analytical theories on computers:
    (1)  The generally slow speed of computers
    (2)  Their small storage capacities
    (3)  The   nonexistence   of   algebraic   compilers   for literal calculations
    Today the large computers are some 15 times faster than the large computers of 1958 and fast core memories have increased in size by a factor of about 4. Algebraic compilers have come into existence as well as other languages suited to symbol manipulation. While all of these languages have some shortcomings, many are useful enough for celestial mechanicians to adopt as regular "tools of the trade."
    Actually, the number of languages on various levels of sophistication which may be used for a variety of nonnumerical applications is quite imposing. Table I gives a list of current symbolic manipulation languages (Sammet 1966). These languages may be categorized as follows:
    (1) List Processing. In this method of programming, information in the computer memory is stored associa-tively, i.e., elements of a data set are not stored consecutively but rather each element contains pointers to its succeeding (also sometimes preceding) element. These pointers are part of the data, and are wholly transparent to the user. This technique is especially useful in building up and manipulating lists of information. Such methods are often needed in building compilers to algebraically manipulate formal expressions. Examples: LISP, IPL V and SLIP.
    (2) String Manipulation. String manipulation involves operations on a concatenation of characters, including matching, insertion, deletion and replacement of characters. Example: SNOBOL.
    (3)  Symbol Manipulation.  Generally the same as (2) above.
    (4)  Formula Manipulation. Generally means operations on algebraic expressions.
    In addition to the general languages shown here, there are many special-purpose programs designed to do a special job. These may be written in a high-level language, such as FORTRAN or ALGOL or may be in a low-level language. Broadly speaking, high-level languages allow less flexibility to the user but are easier to learn and apply, while low-level languages permit more flexibility but may require a considerable investment of time to acquire knowledge of the assembly language, basic machine instructions and special programming techniques.
    Extract: FOrmula Algol
    A high-level language which operates on a low-level is FORMULA ALGOL (Perlis 1965). As FORMAC is a superset to FORTRAN, so is FORMULA ALGOL a superset to ALGOL except that FORMULA ALGOL does not offer a ready-built compiler for manipulating formulas, only the tools to build it according to one's own specifications. FORMULA ALGOL combines list processing, string manipulation, and ordinary processing into a single language. Its authors believe that it is particularly well suited for literal, algebraic symbol manipulation. In addition to the usual types of expression in ALGOL, viz., (a) designational, (b) arithmetic, and (c) Boolean, FORMULA ALGOL has the new expressions (1) formula expressions, (2) pattern expressions, (3) symbolic expressions, and (4) tree expressions.
    To use FORMULA ALGOL, it is necessary for the programmer to learn a rather complex syntax and to
    design all the symbol and formula manipulative functions himself. Because the user has complete control of the design of his literal program, it can be very powerful and will have precisely those functions, and none other (a saving in time and space), that he desires. However, this may require a fair investment of time in learning not only the programming language but other methods and techniques such as optimum algorithms for rational functions and number arithmetic, reduction, dynamic storage allocation, etc.
          in Computers & Automation 16(6) June 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
  • Rutledge, Ron "Current Status of TSS" Carnegie-Mellon University Inter-Office Correspondence to Allen Newell January 24, 1969 view details Extract: Languages on TSS
    TSS now has a selected user community of approximately one hundred.  The mean time between system crashes is greater than two hours.  Most user sessions are only two hours long and the system will crash approximately once every three sessions.  The average number of users on line is about ten.  Active user projects include IPL, ALGOL, LCC, and SAC (System for Algebraic Computation).
    The initial comparative measurements of CMU configuration and IBM standard configuration (4 boxes HSS, 2 drums) indicate that the configurations will support about the same number of users with the CMU configuration giving faster conversational response (.1 sec vs 1-2 sec).
    The current versions of LCC will allow 40 simultaneous users. An improved version has a projected capacity at 75 simultaneous users on the CMU configuration.
    In addition to the current development on TSS a network between several TSS installations is being implemented.  By March 31 the installations at CMU, Princeton, and T. J. Watson Research will be able to send and receive data sets over automatic dial up 2000 band lines.  If this first phase is successful the next phase will use 50K band leased lines and allow users at the different installations to use the network facility as a common data base and to run on any 67 from another one.

          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.583 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
  • 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 243 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
  • Engelman, C. "Algebraic Manipulation Languages" view details Extract: Formula Algol
    In the mid-1960s there appeared two systems, Formula Algol and FAMOUS, which, while dedicated to the symbolic manipulation of mathematical expressions, presented the user with almost no built-in automatic simplification facilities. This was due, at least in the case of FAMOUS, to a conscious decision that, since the "simplicity" of an expression is surely context- dependent, it should be reasonable to present the user with complete control over the simplification process. That is, the user'should be compelled to define all transformations, rather than, as with most systems, be permitted simply to switch on and off the transformations supplied by the system architects. No system of this species has ever solved the inherent efficiency problems to the extent that it could serve more than didactic purposes. Probably neither Formula Algol nor FAMOUS could be revived today. Extract: FORMAC
    The best known, purely symbolic systems are, of course, Formac and its current version PL/IFORMAC (Petrick, 1971; pp. 105-114). Formac was the first widely available general-purpose algebraic manipulation system and served for a period to define the field. Certainly, there was a time when one could have safely made the statement that the majority of all mechanical symbolic mathematical computations had been done within Formac. The practical success of these systems, in spite of their rigidity with respect to user modifications and their lack of any seminumerical facilities for rational function computations, is probably due to the overall intelligence of the facilities that were provided. Above all, they were certainly sufficient to support the dominant application area of truncated power series expansion. Current support is minimal. Extract: Symbolic systems
    SYMBOLIC SYSTEMS. We should mention first a sequence of three early programs for the simplification of general symbolic mathematical expressions represented as prefix-notation tree structures. The first, at M.I.T., was due to Hart, and the other two were due to Wooldridge and Korsvold at Stanford. The latter has survived in current usage as a result of its incorporation, subject to modification, into the MATHLAB, MACSYMA, and SCRATCHPAD systems.

    In the mid-1960s there appeared two systems, Formula Algol and FAMOUS, which, while dedicated to the symbolic manipulation of mathematical expressions, presented the user with almost no built-in automatic simplification facilities. This was due, at least in the case of FAMOUS, to a conscious decision that, since the "simplicity" of an expression is surely context- dependent, it should be reasonable to present the user with complete control over the simplification process. That is, the user'should be compelled to define all transformations, rather than, as with most systems, be permitted simply to switch on and off the transformations supplied by the system architects. No system of this species has ever solved the inherent efficiency problems to the extent that it could serve more than didactic purposes. Probably neither Formula Algol nor FAMOUS could be revived today.

    Another lost symbolic system of importance is the Symbolic Mathematical Laboratory of W. A. Martin. This system provided high-quality 2-D graphics on a DEC-340 display and was also the first to employ a light pen for subexpression selection. In some ways, it represented a degree of interaction that has not been duplicated by any subsequent system. Nor were its innovative internal programming techniques restricted to its graphics facilities. Of particular interest is the use of hash coding for subexpression matching (Petrick, 1971; pp. 305-310).
          in Encyclopedia of Computer Science, Ralston, Anthony, and Meek, Chester L. (eds) New York, NY Petrocelli/Charter 1976 view details