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

Anonim

שלב לעומת מעבר מהדר

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

-> ->

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

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

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

-> ->

מהו שלב מהדר?

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

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

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