General Purpose Macro Processor - Examples of General Purpose Macro Processors

Examples of General Purpose Macro Processors

Name Year Description
GPM 1960s One of the earliest macro processors was GPM (the General Purpose Macrogenerator). This was developed at the University of Cambridge, UK, in the mid 1960s.
ML/I 1960s One particularly important general purpose macro processor was (and still is) ML/I (Macro Language One). This was developed as part of PhD research by a Cambridge postgraduate, Peter J. Brown. ML/I operates on a character stream, and requires no special format for its input, nor any special flag characters to introduce macros.
STAGE2 1960s A contemporary of ML/I was STAGE2, part of William Waite's Mobile Programming System. This too is a general purpose macro processor, but it processes input a line at a time, matching each line against specified patterns.
GMP 1970s Another attempt was the GMP (General Macro Processor) developed in the mid-1970s by M Boule in the DLB/GC department of the CII Company along ideas from R.J. Chevance. Tested in association with the Bordeaux I University the first version ran the SIRIS8/IRIS80 System. It was ported to mini6 systems and was the main component involved in the system generation for this family of computers. The GMP processor used C2-Chomsky grammars to define the syntax of macros and used and imperative language to execute computations and proceed to macro expansion.
gema 1995 gema is a contextual macro processor based on pattern matching, written by David N. Gray. It replaces/enhances the concept of regular expressions by contexts. Contexts roughly corresponds to named sets of patterns. As a consequence, macros in gema closely resemble an EBNF description.
GPP 1996 gpp is another general macro processor written by Denis Auroux. It resembles a C preprocessor, but has more general semantics and allows for customized syntax (for instance, TeX, XHTML, and Prolog-like scripts are definable).
pyexpander 2011 pyexpander is a general-purpose macro processor based on the Python programming language. In addition to simple macro replacement it allows evaluation of arbitrary Python expressions and execution of python code making pyexpander Turing complete.
XPOP XPOP was another attempt at a general macro processing language by Mark Halpern at IBM in the 1960s.
M4 m4 was designed for Unix by Brian Kernighan and Dennis Ritchie.
minimac minimac is a minimalist general purpose macro processor. It operates as a character stream filter, recursively expanding macros as they are encountered. It is unusual for a macro processor in that it uses an explicit argument stack, and user functions are defined by concatenation (similar to the Forth language).
SNOBOL 1960s SNOBOL is a string processing language which is capable of doing most of the pre-processing which can be done by a macro processor.
ELENA Software: Practice and Experience, Vol. 14, pp. 519–531, Jun. 1984

Read more about this topic:  General Purpose Macro Processor

Famous quotes containing the words examples of, examples, general, purpose and/or processors:

    There are many examples of women that have excelled in learning, and even in war, but this is no reason we should bring ‘em all up to Latin and Greek or else military discipline, instead of needle-work and housewifry.
    Bernard Mandeville (1670–1733)

    It is hardly to be believed how spiritual reflections when mixed with a little physics can hold people’s attention and give them a livelier idea of God than do the often ill-applied examples of his wrath.
    —G.C. (Georg Christoph)

    The most general deficiency in our sort of culture and education is gradually dawning on me: no one learns, no one strives towards, no one teaches—enduring loneliness.
    Friedrich Nietzsche (1844–1900)

    I am firmly opposed to the government entering into any business the major purpose of which is competition with our citizens ... for the Federal Government deliberately to go out to build up and expand ... a power and manufacturing business is to break down the initiative and enterprise of the American people; it is the destruction of equality of opportunity amongst our people, it is the negation of the ideals upon which our civilization has been based.
    Herbert Hoover (1874–1964)

    The information links are like nerves that pervade and help to animate the human organism. The sensors and monitors are analogous to the human senses that put us in touch with the world. Data bases correspond to memory; the information processors perform the function of human reasoning and comprehension. Once the postmodern infrastructure is reasonably integrated, it will greatly exceed human intelligence in reach, acuity, capacity, and precision.
    Albert Borgman, U.S. educator, author. Crossing the Postmodern Divide, ch. 4, University of Chicago Press (1992)