הבדל בין שלב למעבר במהדר

הבדל בין שלב למעבר במהדר
הבדל בין שלב למעבר במהדר

וִידֵאוֹ: הבדל בין שלב למעבר במהדר

וִידֵאוֹ: הבדל בין שלב למעבר במהדר
וִידֵאוֹ: הבחנה בין צירוף סמיכות לצירוף שם עצם ותוארו 2024, דֵצֶמבֶּר
Anonim

Phase vs Pass במהדר

באופן כללי, מהדר היא תוכנת מחשב שקוראת תוכנית הכתובה בשפה אחת, הנקראת שפת המקור, ומתרגמת אותה לשפה אחרת, הנקראת שפת היעד. באופן מסורתי, שפת המקור הייתה שפה ברמה גבוהה כמו C++ ושפת היעד הייתה שפה ברמה נמוכה כמו שפת Assembly. אז באופן כללי ניתן לראות מהדרים כמתרגמים שמתרגמים משפה אחת לאחרת. מעבר ושלב הם שני מונחים המשמשים לעתים קרובות עם מהדרים. מספר המעברים של מהדר הוא מספר הפעמים שהוא עובר על המקור (או צורה כלשהי של ייצוג שלו).מהדר מחולק לחלקים לנוחות הבנייה. שלב משמש לעתים קרובות כדי לקרוא לחלק עצמאי בודד כזה של מהדר.

מהו מעבר במהדר?

דרך סטנדרטית לסווג מהדרים היא לפי מספר ה"מעברים". בדרך כלל, קומפילציה היא תהליך עתיר משאבים יחסית ובהתחלה למחשבים לא היה מספיק זיכרון להחזיק תוכנית כזו שעשתה את העבודה המלאה. בשל מגבלה זו של משאבי חומרה במחשבים מוקדמים, המהדרים חולקו לתוכנות משנה קטנות יותר שעשו את עבודתן החלקית על ידי מעבר על קוד המקור (עשו "מעבר" על המקור או צורה אחרת שלו) וביצעו ניתוח, טרנספורמציות ומשימות תרגום בנפרד. לכן, בהתאם לסיווג זה, המהדרים מזוהים כמהדרים חד-פעמיים או מרובי-מעבר.

כפי שהשם מרמז, מהדרים במעבר אחד מבצעים קומפילציה במעבר אחד. קל יותר לכתוב מהדר במעבר אחד וגם הם פועלים מהר יותר מאשר מהדרים מרובי מעבר.לכן, גם בתקופה שבה היו לך מגבלות משאבים, שפות תוכננו כך שניתן יהיה להרכיב אותן במעבר אחד (למשל פסקל). מצד שני, מהדר טיפוסי רב-מעבר מורכב מכמה שלבים עיקריים. השלב הראשון הוא הסורק (המכונה גם מנתח מילוני). הסורק קורא את התוכנית וממיר אותה למחרוזת של אסימונים. השלב השני הוא המנתח. הוא ממיר את מחרוזת האסימונים לעץ ניתוח (או עץ תחביר מופשט), אשר לוכד את המבנה התחבירי של התוכנית. השלב הבא הוא המפרש את הסמנטיקה של המבנה התחבירי. שלבי אופטימיזציית הקוד ושלב יצירת הקוד הסופי מגיעים לאחר מכן.

מהו שלב במהדר?

שלב המונח עולה לעתים קרובות כאשר אתה מדבר על בניית מהדר. בתחילה, המהדרים היו כל חלק פשוט של תוכנה בודדת ומונוליטית שנכתבה על ידי אדם אחד לצורך הידור של שפה פשוטה. אבל כאשר קוד המקור של השפה המתורגמת הופך למורכב וגדול, המהדר התפרק למספר שלבים (יחסית עצמאיים).היתרון בקיום שלבים שונים הוא שניתן להפיץ את הפיתוח של המהדר בין צוות מפתחים. יתר על כן, הוא משפר את המודולריות והשימוש החוזר על ידי מתן אפשרות להחליף שלבים באלה משופרים או להוסיף שלבים נוספים (כגון אופטימיזציות נוספות) למהדר. תהליך חלוקת הקומפילציה לשלבים הוצג על ידי PQCC (Production Quality Compiler-Compiler Project) באוניברסיטת קרנגי מלון. הם הציגו את המונחים הקצה הקדמי, הקצה האמצעי והקצה האחורי. לרוב המהדרים יש לפחות שני שלבים. אבל בדרך כלל, הקצה האחורי והקצה הקדמי מקפלים את השלבים האלה.

מה ההבדל בין Phase ל-Pass במהדר?

Phase ו- Pass הם שני מונחים המשמשים בתחום המהדרים. מעבר הוא פעם אחת שהמהדר עובר (עובר) על קוד המקור או ייצוג אחר שלו. בדרך כלל, לרוב המהדרים יש לפחות שני שלבים הנקראים קצה קצה וקצה אחורי, בעוד שהם יכולים להיות מעבר אחד או רב מעבר.השלב משמש לסיווג המהדרים לפי הקונסטרוקציה, בעוד שמעבר משמש לסיווג המהדרים לפי אופן פעולתם.

מוּמלָץ: