ML/I
From Wikipedia, the free encyclopedia
ML/1 (Macro Language/One) is a powerful general-purpose macro processor.[1]
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
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.[2]
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.[3]