1. Ein Makroprozessor (MP) kann je nach Verwendung der Ausgabe ein Präprozessor (PP) sein.
2. Ein PP konvertiert Daten. Die Ausgabe eines PP ist IMMER die Eingabe in ein anderes Programm. Es wird typischerweise Daten neu anordnen, Daten konvertieren (wie Zeitformate), Daten übersetzen (ein Programm verwendet M/F für männlich/weiblich und ein anderes verwendet 0/1, ...).
Typischerweise sind PP Programme, die es Benutzern nicht erlauben, Programme zu schreiben, die vom PP ausgeführt werden. Alle Hinweise zum Umgang mit Daten sind im PP enthalten.
3. Ein MP konvertiert auch Daten. Ein MP akzeptiert Eingaben und erzeugt eine Ausgabe normalerweise durch Kopieren der Eingabedatei und Ausführen von Anweisungen, die in die Eingabe kodiert sind, die den MP aufrufen, um die Daten an diesem Punkt umzuwandeln.
Ein MP ermöglicht es Benutzern häufig, Programme (Makros) zu schreiben, die Anweisungen dazu geben, welche Operationen an den Daten ausgeführt werden sollen.
Ein MP kann auch ein Programm (Makro) an einer Eingabe ausführen, das vordefinierte Anweisungen hat, die eine Ausgabe erzeugen. Ein Excel-Makro ist ein perfektes Beispiel für diese Art von MP, die ein Makro an einer Eingabe ausführt.
Die Ausgabe eines Makros kann eine Eingabe für ein nachfolgendes Makro sein. Ein Beispiel für ein MP, das als PP fungiert, ist ein Excel-Bericht, der durch Ausführen mehrerer Makros generiert wird. Jedes Makro ist im Wesentlichen eine PP-generierende Eingabe für das nächste, bis das letzte Makro ausgeführt und der Bericht generiert wird. Das letzte Makro generiert Eingaben für nichts, sodass es nicht als PP agiert.
Compiler/Interpreter/Assembler sind Beispiele für MP, die in der Regel nur die konvertierte Eingabe in die Ausgabe einschließen (Kommentare sind ausgeschlossen), was eine lange Kette von Anweisungen in Maschinensprache ergibt. Dieser Typ wird hauptsächlich aufgrund der Einbeziehung von vom Benutzer geschriebenen Makros und Makroaufrufen in den Quellcode als MP angesehen.