Preprocesator

Un preprocesator (rareori și un precompilator ) este un program de calculator care pregătește datele de intrare și le transmite către alt program pentru procesare ulterioară. Preprocesatorul este adesea folosit de compilatori sau interpreți pentru a converti un text de intrare și pentru a procesa rezultatul în programul propriu-zis.

Multe limbaje de programare, de exemplu limbajul de programare C și programul de tipare a textului TeX, au macro procesatoare ca preprocesoare, care extind semnificativ posibilitățile limbajului respectiv pentru a crește lizibilitatea textelor programului și pentru a structura și modulariza proiectele. PHP - un limbaj de scriptare obișnuit pentru generarea de pagini web  - poate fi văzut ca un preprocesor pentru HTML .

În domeniul proiectării CAD , CAM și simularea elementelor finite , un preprocesor este adesea folosit pentru a pregăti componenta proiectată pentru procesare ulterioară. Aceasta include, de exemplu, pași de lucru, cum ar fi combinația cu o altă componentă, divizarea în segmente, generarea de rețele , conversia la un alt sistem de coordonate etc.

Preprocesoare de limbaj de programare

Preprocesorul C.

Preprocesorul limbajului C face următoarele modificări textului programului, printre altele, înainte ca compilatorul real C să compileze programul:

  • Înlocuirea Trigraph secvențe , cum ar fi ??=, ??(, ??)prin simboluri cum ar fi #, {, }(nu cu K & standardul R)
  • \Combinarea liniilor de text sursă fizică cu logică (eliminarea secvențelor de separare a liniilor ) (nu cu standardul K&R)
  • Înlocuiți comentariile cu spații
  • Înlocuirea macro-urilor predefinite sau #definedefinite
  • Condiționat compilație de rânduri între #if, #ifdef, #ifndef, #elifși #endifsunt, și se #ifpoate ocupa , de asemenea , simplu constant expresii aritmetice și operatori de comparare
  • Inserarea recursivă și procesarea fișierelor folosind o #includeinstrucțiune

În plus față de înlocuire macro simplu, traducerea condiționată folosind #if, #ifdefși este #ifndefo caracteristică importantă a C preprocesorul: Dezvoltatorul poate folosi pentru a controla ce secțiuni ale textului program sunt transmise compilator și , astfel , afișa sau a ascunde debug codul de program sau adaptări pentru diferite procesoare sau sisteme de operare marca.

Preprocesorul FreeBASIC

Sintaxa preprocesatorului FreeBASIC este similară cu cea a lui C. Interpretează enunțuri precum #if, #endif, #ifdef, #else, #define și #include similare sau aceleași ca în C. În plus, opțiuni precum # includeți o dată (fără contrabandă repetată) și # macro ... #endmacro (macro multi-linie) puse la dispoziție.

Preprocesorul TeX

Capacitățile preprocesorului încorporate în sistemul de tipografiere TeX sunt în esență limitate la definiția macro-urilor pentru combinarea comenzilor de formatare. Pe baza acestui fapt, au fost dezvoltate preprocesoare mai extinse (mai precis: colecții macro) pentru domenii de aplicare uneori foarte speciale, pentru a face utilizarea TeX mai confortabilă pentru utilizator. Cel mai important reprezentant este LaTeX , alte exemple sunt ConTeXt , BibTeX și MusiXTeX .

Limbajul de programare PHP

PHP este un limbaj de scriptare utilizat în principal pentru a crea pagini web dinamice sau aplicații web . Când serverul web primește o cerere, citește un fișier PHP. Dacă fișierul conține mărci de început și de sfârșit PHP precum <?phpși ?>, textul dintre aceste mărci este interpretat de serverul web ca un program PHP , executat și numai ieșirea programului (împreună cu codul HTML „în jurul”) este trimis către browserul web solicitant în mod inteligent.

O pagină care arată ora curentă ar putea arăta astfel:

<!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:>
 <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>

Preprocesorul PHP convertește acest lucru de ex. B. până în

<!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 15 Uhr, 17 Minuten und 50 Sekunden</p>
 </body>
</html>
Site-ul dinamic din browser (extras)

Prin urmare, conținutul unei astfel de pagini poate fi creat dinamic atunci când este solicitat. PHP se comportă de fapt ca un preprocesator, deoarece textul original este modificat și abia apoi trimis la browser .

Preprocesator pentru CAD, CAM și FEM

O componentă proiectată într-un sistem CAD care urmează să fie simulată folosind metoda elementelor finite trebuie mai întâi acoperită cu o rețea . Adesea, condiții de limitare suplimentare trebuie specificate pentru simulare, de exemplu că o parte a componentei este strânsă / conectată ferm sau viteza și axa pentru o mișcare de rotație. Pentru aceste informații se folosește de obicei un program de preprocesor care pregătește componenta proiectată pentru procesare ulterioară. Preprocesorul trebuie să fie capabil să citească atât formatul CAD al programului de proiectare, cât și să scoată formatul de intrare al solverului FE . Preprocesatorul oferă apoi măști de intrare pentru informațiile corespunzătoare. Sarcinile unui preprocesator includ:

  • Combinarea componentei cu o altă componentă
  • Împărțirea componentei în segmente
  • Generarea rețelei
  • Reglarea grilei
  • Convertiți într-un alt sistem de coordonate

Vezi si

Link-uri web

Wikționar: preprocesator  - explicații ale semnificațiilor, originilor cuvintelor, sinonime, traduceri

Dovezi individuale

  1. Helmut Herold, Michael Klar, Susanne Klar: C ++, UML și modele de design . Bazele și practica orientării obiectului. Addison-Wesley, München 2005, ISBN 3-8273-2267-7 , p. 21 ( previzualizare limitată în căutarea Google Book).
  2. British Standards Institute (ed.): Standardul C - BS ISO / IEC 9899: 1999 . John Wiley & Sons, 2003, ISBN 0-470-84573-2 . Secțiunile 5.1.1.2, 5.2.4.2.1 f., 6.10 și urm.
  3. Referință de comandă pe tema „preprocesoare” pe freebasic-portal.de (germană)
  4. Pagina oficială a proiectului LaTeX pe latex-project.org (engleză)
  5. Lista de TeX Întrebări frecvente ( memento al originalului , între 21 august 2010 , în Internet Archive ) Info: Arhiva link - ul a fost introdus în mod automat și nu a fost încă verificată. Vă rugăm să verificați linkul original și arhivă conform instrucțiunilor și apoi eliminați această notificare. pe tex.ac.uk (engleză) @ 1@ 2Șablon: Webachiv / IABot / www.tex.ac.uk