Burkhardt Renz

MMP: MNI Macro Processor

The MNI Macro Processor (MMP) is an embeddable, extensible, M4-compatible macro processor written in the Java programming language. The M4 macro processor is the macro processor in the Unix tool set. It was first described and implemented by Brian W. Kernighan and Dennis M. Ritchie. There is a sophisticated implementation of M4 as part of GNU, see GNU M4 ⇗, accompanied by a terrific user's manual.

MMP adds the following features:
- MMP provides an application programming interface (API) in Java that allows Java programs to use macro processing facilities directly.
- MMP uses Java objects to implement builtin macros as well as the user defined macros given in the M4 language. This mechanism is available via an abstract class and an API that allows to control the macro processing engine of MMP. This means that it is possible to implement M4 macros in tha Java programming language and register them with the MMP processing engine. This mechanism provides new applications of macro processing within Java applications. MPA, e.g., uses some special macros written in Java.

Software engineering project group: MNI Macro Processor MMP. Fachhochschule Gießen-Friedberg University of Applied Sciences
JVM Programm, 131 KB, Stand 17.10.2023
Software engineering project group: MNI Macro Processor MMP -- Source code and API documentation. Fachhochschule Gießen-Friedberg University of Applied Sciences
Zip Archivdatei, 239 KB, Stand 17.10.2023

The implementation of M4's eval in MMP is the MNI Integer Calculator.

Software engineering project group: MNI Integer Calculator MIC -- Source code and API documentation. Fachhochschule Gießen-Friedberg University of Applied Sciences
Zip Archivdatei, 142 KB, Stand 17.10.2023

Der MNI Macro Processor MMP ist ein einbettbarer, erweiterbarer Makroprozessor, der kompatibel mit M4 ist und in Java geschrieben ist. Der M4 Makroprozessor ist der Makroprozessor unter den Unix-Werkzeugen – universell einsetzbar und nicht so bekannt, wie er es verdiente. Er stammt von Brian W. Kernighan und Dennis M. Ritchie. Eine erweiterte Version des M4 ist Teil des Gnu-Projekts, siehe GNU M4 ⇗. Dazu gibt es ein ganz ausgezeichnetes Handbuch.

MMP ist eine Implementierung von M4 in Java und bietet dadurch folgende Zusatzeigenschaften:
- MMP hat eine API in Java, wodurch Java-Programme die Möglichkeiten von M4 direkt nutzen können.
- Die in M4 eingebauten Makros wie auch benutzerdefinierte Makros sind in MMP als Java-Objekte implementiert. Dadurch ist es möglich, Makros nicht nur in der M4-Sprache, sondern in Java zu schreiben. MMP stellt eine abstrakte Klasse zur Verfügung und hat eine API zur Steuerung der eigentlichen Maschine, die die Makroersetzung durchführt. Durch diesen Mechanismus kann man ganz neue Anwendungen von Makrotechniken in Java-Programmen erreichen. MPA benutzt z.B. spezielle Makros, die in Java geschrieben sind.