Loading AI tools
Aus Wikipedia, der freien Enzyklopädie
Ein Präprozessor (seltener auch Präcompiler[1]) 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 weiterzuverarbeiten.
Viele Programmiersprachen, zum Beispiel die Programmiersprache C sowie 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.
Im Bereich des CAD-Entwurfs, des CAM sowie der Finite-Elemente-Simulation wird häufig ein Präprozessor verwendet, um das entworfene Bauteil für die Weiterverarbeitung vorzubereiten. Hierzu gehören beispielsweise Arbeitsschritte wie Kombination mit einem anderen Bauteil, Aufteilung in Segmente, Gittererzeugung, Umsetzen in ein anderes Koordinatensystem usw.
Der Präprozessor der Sprache C führt unter anderem die folgenden Änderungen am Programmtext durch, bevor der eigentliche C-Compiler das Programm übersetzt:[2]
??=
, ??(
, ??)
durch Symbole wie #
,{
,}
(nicht beim K&R Standard)\
-Zeilentrenner-Sequenzen) (nicht beim K&R Standard)#define
definierten Makros#if
, #ifdef
, #ifndef
, #elif
und #endif
stehen, wobei #if
auch mit einfachen konstanten arithmetischen Ausdrücken und Vergleichsoperatoren umgehen kann#include
-AnweisungNeben 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 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) zur Verfügung gestellt.[3]
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.[4][5]
PHP ist eine Skriptsprache, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird. Wenn der Webserver eine Anfrage empfängt, liest er eine PHP-Datei. Enthält die Datei PHP-Start- und Endmarken wie <?php
und ?>
, so wird der Text zwischen diesen Markierungen vom Webserver als PHP-Programm interpretiert, ausgeführt und erst die Ausgabe des Programms (zusammen mit dem Html-Code „darum“) wird an den anfragenden Webbrowser geschickt.
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 22 Uhr, 23 Minuten und 07 Sekunden</p>
</body>
</html>
Der Inhalt einer solchen Seite kann also bei Abruf dynamisch erstellt 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.
Ein in einem CAD-System entworfenes Bauteil, das mittels Finite-Elemente-Methode simuliert werden soll, muss zuvor mit einem Gitter überdeckt werden. Häufig sind zusätzlich Randbedingungen für die Simulation anzugeben, zum Beispiel, dass eine Seite des Bauteils fest eingespannt/verbunden ist, oder Drehzahl und Achse für eine Rotationsbewegung. Für derartige Angaben wird meist ein Präprozessor-Programm verwendet, der das entworfene Bauteil für die Weiterverarbeitung vorbereitet. Der Präprozessor muss sowohl das CAD-Format des Entwurfsprogramms einlesen können, als auch das Inputformat des FE-Lösers ausgeben können. Der Präprozessor bietet dann Eingabemasken für entsprechende Angaben. Aufgaben eines Präprozessors sind unter anderem auch:
Stylesheets der Sprache CSS können ebenfalls mit Präprozessoren erzeugt werden. Bekannte CSS-Präprozessoren sind Sass/SCSS und Less.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.