ML/I

ML/1 (Macro Language/One) is a powerful general-purpose macro processor.

Typical uses of ML/1 include:

  • editing, modifying, correcting, or reformatting text files
  • translating source code from one programming language to another
  • acting as a source-code preprocessor to allow the user to add new syntactic forms to an existing programming language
  • supporting program source-code parameterization (e.g. a parameter might determine whether debugging statements are to be included in the program source code that is passed to the compiler)

ML/1 was developed in 1966 by Peter J. Brown as part of PhD research at Cambridge University in England.

In 1984, Robert D. Eager, one of Peter Brown's colleagues at the University of Kent, rewrote ML/I, first in BCPL in 1981, and later in C in 1984, which increased its portability.

  • Note that Peter Brown's original name for the language was ML/I, where (as in IBM's PL/I) the last character is the Roman numeral "I", not the Arabic numeral "1". Most subsequent implementations however have been called ML/1 (where the last character is the Arabic numeral "1").

Since then, ML/1 has been ported to many platforms and operating systems, including VMS, MVS, MS-DOS, OS/2, and UNIX. In his implementations of ML/1, Robert D. Eager has added features and capabilities in addition to those originally specified in Peter Brown's thesis.

That version is available for multiple platforms via the ML/1 web site, http://www.ml1.org.uk . The ML/1 web site provides further information about ML/1, as well as documentation (including a tutorial, simple introductory guide, and full user manual).

Although the total number of ML/1 users in the world is small, there are ML/1 users all over the world, and Bob has corresponded with ML/1 users in the United States, Canada, Australia, New Zealand, Germany, Holland, and India.

In a 1976 paper, Andrew S. Tanenbaum describes using ML/I as a compiler-compiler.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.