Jump to content

ML/I: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
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.
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 hand for processing human-readable text for reformatting purposes and on the other as a preprocessor 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==
==Charset support==
Line 9: Line 9:
==Links==
==Links==
* [http://www.ml1.org.uk/impl-w.html ML/I homepage]
* [http://www.ml1.org.uk/impl-w.html ML/I homepage]
* [http://empslocal.ex.ac.uk/people/staff/pjbrown/public_html/ml1/ A short introductin to ML/I] on Peter J. Brown's homepage
* [http://empslocal.ex.ac.uk/people/staff/pjbrown/public_html/ml1/ A short introduction to ML/I] on Peter J. Brown's homepage
* [https://web.archive.org/web/20071227030434/http://members.shaw.ca/parz/ML1.html An introduction to ML/I by Parsifal Herzog] - Via [[Archive.org]]
* [https://web.archive.org/web/20071227030434/http://members.shaw.ca/parz/ML1.html An introduction to ML/I by Parsifal Herzog] - Via [[Archive.org]]
* [https://github.com/glguida/ml1-llvm ML/I-LLVM] - Allows you to recompile old ML/I versions written in LOWL to LLVM assembly.
* [https://github.com/glguida/ml1-llvm ML/I-LLVM] - Allows you to recompile old ML/I versions written in LOWL to LLVM assembly.
Line 27: Line 27:


====Other related papers====
====Other related papers====
* Masataka Sassa: ''A Pattern Matching Macro Processor'' - [http://thirdworld.nl/a-pattern-matching-macro-processor PDF] - Originally published in Software-Practice and experience, Vol. 9 - 1979, pages 439-456.
* Masataka Sassa: ''A Pattern Matching Macro Processor'' - Originally published in Software-Practice and experience, Vol. 9 - 1979, pages 439-456.
:Expands on the ML/I concepts, quite a bit
:Expands on the ML/I concepts, quite a bit



Latest revision as of 21:23, 29 March 2023

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 hand for processing human-readable text for reformatting purposes and on the other as a preprocessor 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.

Version

  • 4.9

Links

Publications

  • Peter J. Brown: The ML/I Macro Processor: ML/I user's manual - 1970 - Of historical interest only. - An even earlier 1967 version of the document is archive.org
  • Peter J. Brown: The ML/I Macro Processor: A simple introductory guide - 1973 - Of historical interest only. - Updated Third edition from 1982 available in HTML form on Peter J. Brown's homepage.
  • François E. Cellier: Macro-handler for simulation packages using ML/I PDF - Originally published in 1976.
  • Peter J. Brown: Software Portability: An Advanced Course:New Edition – Cambridge University Press 1979, ISBN 0521297257
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

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 - Originally published in Software-Practice and experience, Vol. 9 - 1979, pages 439-456.
Expands on the ML/I concepts, quite a bit

Licence

Closed source freeware

Author

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