FORMAC

Last updated

FORMAC, the FORmula MAnipulation Compiler, was the first computer algebra system to have significant use. [1] It was developed by Jean E. Sammet and her team, as an extension of FORTRAN IV. The compiler was implemented as a preprocessor[ more detail needed ] taking the FORMAC program and converting it to a FORTRAN IV program which was in turn compiled without further user intervention.

Contents

Initial development started in 1962 and was complete by April 1964. In November it was released to IBM customers.

FORMAC supported computation, manipulation, and use of symbolic expressions. [2] In addition it supported rational arithmetic.

See also

Related Research Articles

Fortran General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

In computing, a virtual machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.

The A-0 system, written by Grace Murray Hopper in 1951 and 1952 for the UNIVAC I, was an early compiler related tool developed for electronic computers. The A-0 functioned more as a loader or linker than the modern notion of a compiler. A program was specified as a sequence of subroutines and its arguments. The subroutines were identified by a numeric code and the arguments to the subroutines were written directly after each subroutine code. The A-0 system converted the specification into machine code that could be fed into the computer a second time to execute the said program.

Douglas McIlroy

Malcolm Douglas McIlroy is a mathematician, engineer, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College. McIlroy is best known for having originally proposed Unix pipelines and developed several Unix tools, such as spell, diff, sort, join, graph, speak, and tr. He was also one of the pioneering researchers of macro processors and programming language extensibility. He participated in the design of multiple influential programming languages, particularly PL/I, SNOBOL, ALTRAN, TMG and C++.

C preprocessor Macro preprocessor used in the C, C++, and Objective-C programming languages

The C preprocessor is the macro preprocessor for the C, Objective-C and C++ computer programming languages. The preprocessor provides the ability for the inclusion of header files, macro expansions, conditional compilation, and line control.

A system programming language is a programming language used for system programming; such languages are designed for writing system software, which usually requires different development approaches when compared with application software. Edsger Dijkstra refers to these language as Machine Oriented High Order Languages, or mohol.

Axiom is a free, general-purpose computer algebra system. It consists of an interpreter environment, a compiler and a library, which defines a strongly typed hierarchy.

In computer software, a general-purpose programming language is a programming language designed to be used for building software in a wide variety of application domains. The opposite of a general-purpose programming language is a domain-specific programming language, which is designed to be used within a specific area, for example, querying databases.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

The Laning and Zierler system was one of the first operating algebraic compilers, that is, a system capable of accepting mathematical formulas in algebraic notation and producing equivalent machine code. It was implemented in 1952 for the MIT WHIRLWIND by J. Halcombe Laning and Neal Zierler. It is preceded by the UNIVAC A-2, IBM Speedcoding and a number of systems that were proposed but never implemented.

Jean E. Sammet was an American computer scientist who developed the FORMAC programming language in 1962. She was also one of the developers of the influential COBOL programming language.

ALTRAN is a programming language for the formal manipulation of rational functions of several variables with integer coefficients. It was developed at Bell Labs in 1960s. ALTRAN is a FORTRAN version of ALPAK rational algebra package, and “can be thought of as a variant of FORTRAN with the addition of an extra declaration, the ‘algebraic’ type declaration.”

History of Programming Languages (HOPL) is an infrequent ACM SIGPLAN conference. Past conferences were held in 1978, 1993, and 2007. The fourth conference was originally intended to take place in June 2020, but was postponed to 2021.

AIMACO is an acronym for AIr MAterial COmpiler. It began around 1959 as the definition of a high level programming language influenced by the FLOW-MATIC language, developed by UNIVAC, and the COMTRAN programming language, developed by IBM. AIMACO, along with FLOW-MATIC and COMTRAN, were precursors to the COBOL programming language and influenced its development.

Incremental computing Software feature

Incremental computing, also known as incremental computation, is a software feature which, whenever a piece of data changes, attempts to save time by only recomputing those outputs which depend on the changed data. When incremental computing is successful, it can be significantly faster than computing new outputs naively. For example, a spreadsheet software package might use incremental computation in its recalculation feature, to update only those cells containing formulas which depend on the changed cells.

In computing, compiler correctness is the branch of computer science that deals with trying to show that a compiler behaves according to its language specification. Techniques include developing the compiler using formal methods and using rigorous testing on an existing compiler.

In computer science, region-based memory management is a type of memory management in which each allocated object is assigned to a region. A region, also called a zone, arena, area, or memory context, is a collection of allocated objects that can be efficiently reallocated or deallocated all at once. Like stack allocation, regions facilitate allocation and deallocation of memory with low overhead; but they are more flexible, allowing objects to live longer than the stack frame in which they were allocated. In typical implementations, all objects in a region are allocated in a single contiguous range of memory addresses, similarly to how stack frames are typically allocated.

David A. Moon

David A. Moon is a programmer and computer scientist, known for his work on the Lisp programming language, as co-author of the Emacs text editor, as the inventor of ephemeral garbage collection, and as one of the designers of the Dylan programming language. Guy L. Steele Jr. and Richard P. Gabriel (1993) name him as a leader of the Common Lisp movement and describe him as "a seductively powerful thinker, quiet and often insulting, whose arguments are almost impossible to refute".

<i>Programming Languages: History and Fundamentals</i> Early book on computer programming languages (1969)

Programming Languages: History and Fundamentals is a book about programming languages written by Jean E. Sammet. Published in 1969, the book gives an overview of the state of the art of programming in the late 1960s, and records the history of programming languages up to that time.

References

  1. Sammet, Jean E. (1993). "The beginning and development of FORMAC (FORmula MAnipulation Compiler)". Proceedings of HOPL-II, The second ACM SIGPLAN conference on History of programming languages. pp. 209–230. doi:10.1145/154766.155372. ISBN   0-89791-570-4.
  2. Sammet, Jean E. (1969). Programming Languages: History and Fundamentals. Englewood Cliffs, New Jersey: Prentice Hall. ISBN   0-13-729988-5.

Bibliography