From EDM2
Jump to: navigation, search

ML/I or Macro Processor One is a general purpose macro processor with a history going back all the way to 1966. It best known for its powerful text processing features that lead to it being primarily used on one one hand for processing human readable text for reformatting purposes and on the other as a pre processor for programming code where code needed to be translated between programming languages that had some structural similarity but different syntax. While old and rarely updated it still has some advantages over more modern processors such as M4 or PPWizard or programming languages like AWK as it has better support for nesting and long lines of text.

Charset support

8 Bit ASCII (256 Characters according to current codepage). No support for Unicode or DBCS.


  • 4.9



Contains a chapter on how macro and text processors can aid in code portability and ML/I in particular.
  • A. J. Cole: Macro Processors - Cambridge University Press 1976, ISBN 0521290244
Contains a chapter on ML/I plus general preprocessor usage
  • Jeffrey D. Liotta: ML/I Macro Processor, Implementation in PL/I - University of North Carolina at Chapel Hill 1980


Supermac was a macro processor developed by ML/I author Peter J. Brown in the 1970's that got quite a lot of interest when it was originally introduced, however unlike ML/I there has not been a version of it kept up to date and available for modern operating systems.

Other related papers

  • Masataka Sassa: A Pattern Matching Macro Processor - PDF - Originally published in Software-Practice and experience, Vol. 9 - 1979, pages 439-456.
Expands on the ML/I concepts, quite a bit


Closed source freeware


  • Peter J. Brown (original author)
  • Bob Eager (Maintainer since 1973)