קדם-מעבד – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה |
|||
שורה 1:
ב[[מדעי המחשב]] '''קדם מעבד''' הוא תוכנית המעבדת קלט ויוצרת ממנו פלט המיועד להיות קלט לתוכנית אחרת, בדרך כלל עבור [[מהדר]]. סוג העיבוד תלוי בטבעו של הקדם מעבד, ישנם קדם מעבדים הבנויים להחלפה טקסטואלית של [[מאקרו (תכנות)|פקודות מאקרו]] גרידא, בעוד אחרים כוללים יכולות מלאות של שפת תכנות.
תהליך ה[[מהדר|הידור]] בחלק מהשפות, למשל [[PL/I]] ו-[[C (שפת תכנות)|C]], מכיל שלב של קדם-עיבוד.
==קדם מעבדים מילוליים==
קדם מעבדים מילוליים הם הקדם מעבדים מהרמה הנמוכה ביותר של קדם מעבדים, המבצעים [[ניתוח מילולי]] בלבד, על ידי החלפת סדרות
===קדם מעבד ב-[[C (שפת תכנות)|C]]===
הדוגמה הנפוצה ביותר לקדם מעבד מילולי הוא קדם המעבד של [[C (שפת תכנות)|C]], המפרש שורות המתחילות בסימן # כהנחיות (directives) ובפרט ההנחיות: define#,{{כ}} include#. בגלל שהקדם מעבד לא יודע דבר אודות השפה, הוא עלול לבצע פעולות המחבלות בפעילות התוכנית ויש צורך בזהירות רבה מצד המתכנת.
הנחיות קדם מעבד לשם ביצוע החלפות מאקרו, מבוצעות על ידי
הנחיית הכללה של קובצי כותרת נעשית על ידי include#. שימוש בפונקציות הנמצאות בקבצים שונים, בין מהספרייה הסטנדרטית ובין מקבצים של המתכנת, מצריכה הכרזה על הפונקציות וכדי לחסוך כתיבה של ההכרזות בכל תוכנית מכלילים קבצים של הכרזות, הנקראים קובצי כותרת על ידי הנחייה זו.
==קדם מעבדים תחביריים==
קדם מעבד תחבירי הוצג לראשונה במשפחת השפות [[LISP]]. תפקידו להמיר עצים תחביריים בהתאם למספר כללים המוגדרים על ידי המשתמש. בחלק מהשפות הכללים נכתבים בשפת התכנות עצמה, למשל ב[[LISP]]
קדם מעבדים תחביריים משמשים בדרך כלל להתאמת תחביר של שפה, הרחבת שפה, הכללה של שפה המיועדת לתחום ספציפי (DSL) בתוך שפה למטרות כלליות.
|