Präprozessor
aus Wikipedia, der freien Enzyklopädie
Ein Präprozessor ist ein Computerprogramm, das einen Eingabetext konvertiert und das Ergebnis ausgibt. Die Programmiersprache C und das Textsatzprogramm TeX besitzen Makroprozessoren als Präprozessoren, die die Fähigkeiten des Gesamtsystems wesentlich erweitern. Auch PHP – eine verbreitete Skriptsprache zur Generierung von Webseiten – hat mit Präprozessoren zu tun, die Abkürzung steht für PHP: Hypertext Präprozessor.
Inhaltsverzeichnis |
[Bearbeiten] Der C-Präprozessor
Der Präprozessor der Sprache C führt die folgenden Änderungen am Programmtext durch, bevor der eigentliche C-Compiler das Programm übersetzt:
- Ersetzen von Trigraph-Symbolen wie
??=
,??(
,??)
durch Symbole wie#
,{
,}
- Ersetzen von Kommentartext durch Leerzeichen
- Ersetzen von vordefinierten oder über #define definierten Makros
- Bedingte Übersetzung von Zeilen, die zwischen #if, #ifdef, #ifndef und #endif stehen
- Definition von Makros über #define
- Einfügen von Dateien über #include
Ein wichtiges Einsatzgebiet des C-Präprozessors sind "Compile-Time-Schalter" (#if, #ifdef, #ifndef). Wird ein Programm übersetzt, kann der Entwickler mittels Compiler-Anweisungen Teile des Programms konfigurieren und für die aktuelle Anwendung anpassen, beispielsweise mit oder ohne Debug-Programmcode, Änderungen für unterschiedliche Prozessoren usw.
[Bearbeiten] Der FreeBASIC Präprozessor
Der Präprozessor von FreeBASIC funktioniert syntaktisch ähnlich wie der von C. Er interpretiert Präprozessoren wie #if, #endif, #ifdef, #else, #define und #include ähnlich oder gleich wie C. [1]
[Bearbeiten] Die Programmiersprache PHP
PHP verarbeitet normalerweise Webseiten. Eine Webseite wird eingelesen und unverändert wieder ausgegeben. Enthält die Seite jedoch PHP-Markierungszeichen wie <?php
an einer beliebigen Stelle, so wird der Text zwischen diesen Zeichen und einem Endezeichen – normalerweise ?>
– als PHP-Programm interpretiert. Das Programm wird ausgeführt und die Ausgabe des Programms erscheint an Stelle des Programmtexts 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 HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Aktuelle Uhrzeit</title> </head> <body> <h1>Aktuelle Uhrzeit</h1> <?php print strftime('Jetzt ist es %H Uhr, %M Minuten und %S Sekunden'); ?> </body> </html>
Der PHP-Präprozessor wandelt dies z.B. um in
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Aktuelle Uhrzeit</title> </head> <body> <h1>Aktuelle Uhrzeit</h1> Jetzt ist es 14 Uhr, 30 Minuten und 21 Sekunden </body> </html>
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:
- Die dynamische Webseite im Browser (Ausschnitt)