Debugger vs Compiler
באופן כללי, מהדר היא תוכנת מחשב שקוראת תוכנית הכתובה בשפה אחת, הנקראת שפת המקור, ומתרגמת אותה לשפה אחרת, הנקראת שפת היעד. באופן מסורתי, שפת המקור הייתה שפה ברמה גבוהה כמו C++ ושפת היעד הייתה שפה ברמה נמוכה כמו שפת אסמבלינג. Debugger היא תוכנת מחשב המשמשת לאיתור באגים/שגיאות בתוכנות אחרות. Debugger מאפשר למתכנת לעצור ביצוע של תוכנית בנקודה מסוימת ולבחון את המאפיינים כגון ערכי משתנים באותה נקודה.
מהו באגים?
Debugger היא תוכנת מחשב המשמשת לאיתור באגים/שגיאות בתוכנות אחרות. Debugger מאפשר הפעלת תוכנית ובדיקת כל שלב בביצוע התוכנית. זה גם מאפשר לעצור את ביצוע התוכנית בשלב מסוים ולשנות כמה ערכי משתנים ואז להמשיך בביצוע. כל היכולות הללו ניתנות כדי לעזור למתכנת לוודא שהתוכנה שלה מתנהגת כהלכה ולעזור בזיהוי באגים בקוד. רוב מאתרי הבאגים מספקים את היכולת להפעיל תוכנית שלב אחר שלב (נקרא גם צעד בודד), תוך הפסקה לבחינת המצב הנוכחי של התכנית על ידי מתן נקודת שבירה ומעקב אחר ערכי משתנים. כמה מאגרי באגים מתקדמים מאפשרים למתכנת לדלג על מיקום שגורם לקריסה או שגיאה לוגית בקוד ולהמשיך בביצוע ממיקום אחר. כמה מהבאגים הפופולריים הם GNU Debugger (GDB), Microsoft Visual Studio Debugger וכו'.
מה זה מהדר?
Compiler היא תוכנת מחשב הקוראת תוכנית הכתובה בשפה אחת, הנקראת שפת המקור, ומתרגמת אותה לשפה אחרת, הנקראת שפת היעד. לרוב, שפת המקור היא שפה ברמה גבוהה ושפת היעד היא שפה ברמה נמוכה. אז באופן כללי ניתן לראות מהדרים כמתרגמים שמתרגמים משפה אחת לאחרת. בנוסף, מהדרים מבצעים כמה אופטימיזציות לקוד. מהדר טיפוסי מורכב מכמה מרכיבים עיקריים. המרכיב הראשון הוא הסורק (המכונה גם מנתח מילוני). הסורק קורא את התוכנית וממיר אותה למחרוזת של אסימונים. הרכיב השני הוא המנתח. הוא ממיר את מחרוזת האסימונים לעץ ניתוח (או עץ תחביר מופשט), אשר לוכד את המבנה התחבירי של התוכנית. המרכיב הבא הוא השגרות הסמנטיות המפרשות את הסמנטיקה של המבנה התחבירי. לאחר מכן, אופטימיזציות של קוד ויצירת קוד סופית.
מה ההבדל בין Debugger ל-Compiler?
Debugger היא תוכנת מחשב המשמשת לאיתור באגים/שגיאות בתוכנות אחרות, בעוד מהדר היא תוכנת מחשב שקוראת תוכנה שנכתבה בשפה אחת ומתרגמת אותה לשפה אחרת. למהדרים יש גם את היכולת לזהות שגיאות תחביר ושגיאות זמן קומפילציה אחרות, אבל מאפי באגים מספקים יותר יכולות (כגון ניטור הזיכרון) כדי לזהות באגים בתוכניות. שתי תוכניות אלו הן שתי תוכנות שונות, אך לרוב, מאתר באגים ומהדר משולבים בחבילה אחת.