Präprozessor

Präprozessor

Ein Präprozessor ist ein Computerprogramm, das Eingabedaten vorbereitet und zur weiteren Bearbeitung an ein anderes Programm weitergibt. Der Präprozessor wird häufig von Compilern oder Interpretern dazu verwendet einen Eingabetext zu konvertieren und das Ergebnis im eigentlichen Programm weiter zu verarbeiten. Die Programmiersprache C und das Textsatzprogramm TeX besitzen Makroprozessoren als Präprozessoren, die die Möglichkeiten der jeweiligen Sprache zur Steigerung der Lesbarkeit von Programmtexten sowie zur Strukturierung und Modularisierung von Projekten wesentlich erweitern. PHP – eine verbreitete Skriptsprache zur Generierung von Webseiten – kann als Präprozessor für HTML gesehen werden.

Inhaltsverzeichnis

Der C-Präprozessor

Hauptartikel: C-Präprozessor

Der Präprozessor der Sprache C führt unter anderem die folgenden Änderungen am Programmtext durch, bevor der eigentliche C-Compiler das Programm übersetzt:[1]

  • Ersetzen von Trigraph-Sequenzen wie ??=, ??(, ??) durch Symbole wie #,{,} (nicht beim K&R Standard)
  • Zusammenfügen von physischen zu logischen Quelltextzeilen (Entfernen der \-Zeilentrenner-Sequenzen) (nicht beim K&R Standard)
  • Ersetzen von Kommentaren durch Leerzeichen
  • Ersetzen von vordefinierten oder über #define definierten Makros
  • Bedingte Übersetzung von Zeilen, die zwischen #if, #ifdef, #ifndef, #elif und #endif stehen, wobei #if auch mit einfachen konstanten arithmetischen Ausdrücken und Vergleichsoperatoren umgehen kann
  • Rekursives Einfügen und Abarbeiten von Dateien per #include-Anweisung

Neben der einfachen Makroersetzung ist die bedingte Übersetzung mittels #if, #ifdef und #ifndef ein wichtiges Merkmal des C-Präprozessors: Der Entwickler kann damit steuern, welche Abschnitte des Programmtextes dem Compiler zugeführt werden und so beispielsweise Debug-Programmcode ein- oder ausblenden oder Anpassungen für unterschiedliche Prozessoren oder Betriebssysteme vornehmen.

Der FreeBASIC-Präprozessor

Der Präprozessor von FreeBASIC funktioniert syntaktisch ähnlich wie der von C. Er interpretiert Anweisungen wie #if, #endif, #ifdef, #else, #define und #include ähnlich oder gleich wie in C. Zusätzlich werden noch Optionen wie #include once (Kein wiederholtes Einschleusen) und #macro ... #endmacro (Mehrzeiliges Macro) zu Verfügung gestellt. [2]

Der TeX-Präprozessor

Die Fähigkeiten des im TeX-Satzsystem eingebauten Präprozessors beschränken sich im Wesentlichen auf die Definition von Makros zur Zusammenfassung von Formatierungsbefehlen. Darauf aufbauend wurden im Laufe der Zeit umfangreichere Präprozessoren (genauer: Makrosammlungen) für mitunter sehr spezielle Anwendungsgebiete entwickelt, um den Umgang mit TeX für den Benutzer komfortabler zu gestalten. Prominentester Vertreter ist LaTeX, weitere Beispiele sind ConTeXt, BibTeX und MusiXTeX.[3][4]

Die Programmiersprache PHP

PHP (die rekursive Abkürzung steht für PHP: Hypertext Preprocessor) verarbeitet normalerweise serverseitig Webseiten. Eine Webseite wird eingelesen und an den Browser ausgegeben. Enthält die Seite PHP-Start- und Endmarken wie <?php und ?> an einer beliebigen Stelle, so wird der Text zwischen diesen Markierungen als PHP-Programm interpretiert, ausgeführt und die Ausgabe des Programms erscheint an Stelle des Programmtextes in der Webseite.

PHP ist eine vollwertige Programmiersprache mit der beliebige Algorithmen implementiert werden können. Eine Seite, die die aktuelle Uhrzeit ausgibt, könnte so aussehen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
 <head>
   <title>Aktuelle Uhrzeit</title>
 </head>
 <body>
<h1>Aktuelle Uhrzeit</h1>
<p><?php print strftime('Jetzt ist es %H Uhr, %M Minuten und %S Sekunden'); ?></p>
 </body>
</html>

Der PHP-Präprozessor wandelt dies z. B. um in

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
 <head>
   <title>Aktuelle Uhrzeit</title>
 </head>
 <body>
<h1>Aktuelle Uhrzeit</h1>
<p>Jetzt ist es 14 Uhr, 30 Minuten und 21 Sekunden</p>
 </body>
</html>
Die dynamische Webseite im Browser (Ausschnitt)

Der Inhalt einer solchen Seite kann also dynamisch geändert werden. PHP verhält sich also tatsächlich wie ein Vor- oder Präprozessor, da der Originaltext verändert und erst danach zum Browser gesendet wird.

Siehe auch

Weblinks

Wiktionary Wiktionary: Präprozessor – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. British Standards Institute (Hrsg.): The C Standard - BS ISO/IEC 9899:1999. John Wiley & Sons, 2003. ISBN 0-470-84573-2. Abschn. 5.1.1.2, 5.2.4.2.1 f, 6.10 ff.
  2. deutschsprachige Befehlsreferenz zum Thema "Präprozessoren" auf www.freebasic-portal.de
  3. Offizielle LaTeX-Projektseite auf www.latex-project.org (englisch)
  4. List of TeX Frequently Asked Questions auf www.tex.ac.uk (englisch)

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Präprozessor —   [engl. preprocessor, precompiler, von lat. prae »vor«] (Prä Compiler), Hilfsprogramm, mit dem Quellcode vor der eigentlichen Compilierung anhand von sog. Meta oder Präprozessoranweisungen automatisch überarbeitet wird (Compiler). Hierzu gehören …   Universal-Lexikon

  • C-Präprozessor — Der C Präprozessor (cpp, auch C Precompiler) ist der Präprozessor der Programmiersprache C. In vielen Implementierungen ist er ein eigenständiges Computerprogramm, das durch den Compiler als erster Schritt der Übersetzung aufgerufen wird. Der… …   Deutsch Wikipedia

  • Makroprozessor — Als Makroprozessoren werden Computerprogramme bezeichnet, die Zeichenfolgen innerhalb eines Textes durch andere Zeichenfolgen ersetzen. Ein bekannter Makroprozessor ist z. B. Teil des Textsatzprogramms TeX. Auch der C Präprozessor der… …   Deutsch Wikipedia

  • ANSI-C — Inhaltsverzeichnis 1 K R C 2 C89, C90 3 C95 4 C99 5 Beispiele für den Unterschied zwischen verschiedenen Fassungen der Sprache C 6 Weblinks …   Deutsch Wikipedia

  • ANSI C — Inhaltsverzeichnis 1 K R C 2 C89, C90 3 C95 4 C99 5 Beispiele für den Unterschied zwischen verschiedenen Fassungen der Sprache C 6 Weblinks …   Deutsch Wikipedia

  • C-Code — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

  • C89 — Inhaltsverzeichnis 1 K R C 2 C89, C90 3 C95 4 C99 5 Beispiele für den Unterschied zwischen verschiedenen Fassungen der Sprache C 6 Weblinks …   Deutsch Wikipedia

  • C95 — Inhaltsverzeichnis 1 K R C 2 C89, C90 3 C95 4 C99 5 Beispiele für den Unterschied zwischen verschiedenen Fassungen der Sprache C 6 Weblinks …   Deutsch Wikipedia

  • C99 — Inhaltsverzeichnis 1 K R C 2 C89, C90 3 C95 4 C99 5 Beispiele für den Unterschied zwischen verschiedenen Fassungen der Sprache C 6 Weblinks …   Deutsch Wikipedia

  • C Programmiersprache — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”