מפרש (Interpreter) הוא תוכנה שמתרגמת ומבצעת קוד מקור שורה אחר שורה, בזמן אמת. הוא לא מייצר קובץ בינארי עצמאי, ולכן בכל הרצה הקוד מתורגם מחדש. עקב כך תוכניות שפועלות על מפרש נוטות להיות איטיות יותר מהן שנוצרו באמצעות מהדר.
מפרש נותן זיהוי מיידי של שגיאות במהלך הריצה. מצד שני, כשהמפרש נתקל בשגיאה, התוכנית נעצרת. שפות נפוצות שמפעילות מודל פירוש הן פייתון (Python), JavaScript, ורובי (Ruby), ועוד שפות כמו Visual Basic ו־bash.
מהדר (קומפיילר) מתרגם את הקוד לשפת מכונה פעם אחת. בתרגום זה נוצרת תוכנית שניתנת להרצה ללא פירוש נוסף. ההבדל המרכזי בין מפרש למהדר הוא מתי מתקיים התרגום: בטרם ההרצה אצל המהדר, ובזמן אמת אצל המפרש. מהבדל זה נובעים יתרונות וחסרונות לכל שיטה.
מפרש מאפשר הרצה על מכונות שונות בלי להידר מחדש, כי התרגום נעשה בכל מחשב מחדש. זה מקל על הפצה ושדרוגים של קוד. מצד שני, תהליך התרגום החוזר צורכני משאבים ומאט את הביצוע. חלק מהדרישות של תוכנית, כמו הקצאת זיכרון, עלולות לקחת יותר זמן כי התוכנית עובדת דרך המפרש ולא מול מערכת ההפעלה ישירות.
בשימוש מעשי, מפרש טהור נדיר. ברשת האינטרנט משתמשים במפרשים בגלל הגמישות. קוד שרץ במפרש נקרא בדרך-כלל תסריט (סקריפט). יש גם שיטות מעורבות: למשל שפות שכל הפיתוח בהן נעשה בפירוש, ואז ניתן להידר ל־EXE, כפי שהיה בגרסאות מסוימות של Visual Basic.
חלק מהשפות שמוגדרות כדינמיות מבצעות שלב ראשוני של הידור בכל ריצה. בשפות כמו Perl, Python ו־PHP יש שלב כזה, ולעיתים נשמרים תוצרי ההידור (כדי לחסוך זמן בריצות הבאות). גם בשפות אלה קיים לעיתים מנגנון לפירוש קוד חדש בזמן ריצה, המוכר כ"eval" (הערכת קוד).
שפות דינמיות רבות מריצות את הקוד על מכונה וירטואלית, תוכנה המדמה מחשב ומבצעת את הוראות הקוד.
קיים פתרון שמשלב בין מפרש למהדר. כאן התרגום מתבצע בשני שלבים: תחילה הקוד מתורגם לשפת ביניים. לאחר מכן שפת הביניים מתורגמת לשפת מכונה ספציפית. השיטה מאפשרת שילוב של ניידות וביצועים טובים יותר.
דוגמאות בולטות לשיטה זו הן Java ו־.NET. בסביבת Java נוצר קובץ עם הוראות ב־Bytecode. בסביבת .NET נוצר קובץ עם הוראות ב־CIL. שתי הסביבות משתמשות במכונה וירטואלית, והן מתרגמות את שפת הביניים לשפת מכונה לפני או תוך כדי ההרצה.
מפרש הוא תוכנה שמתרגמת ומריצה קוד שורה אחרי שורה. המילה "מפרש" באנגלית היא Interpreter. המפרש לא עושה קובץ חדש. לכן בכל פעם שהרצה התוכנית, המפרש מתרגם שוב.
מהדר (קומפיילר) מתרגם את הקוד פעם אחת לקובץ שניתן להריץ ישר. המהדר עובד לפני ההרצה. המפרש מתרגם במהלך ההרצה.
יתרון: תוכניות במפרש יכולות לרוץ על מחשבים שונים בלי להידר מחדש. חסרון: זה איטי יותר כי מתרגמים כל פעם מחדש. קוד שרץ במפרש נקרא סקריפט (תסריט).
יש שפות כמו פייתון (Python) ו־JavaScript שרצות במפרש או בשילוב עם שלב קצר של הידור. לפעמים שומרים תוצרי התרגום כדי לחסוך זמן. יש גם אפשרות להריץ קוד חדש בזמן ריצה בעזרת "eval".
יש שיטה בשני שלבים. קודם מתרגמים שורה לשפת ביניים. אחר כך את שפת הביניים מתרגמים לשפת מכונה. דוגמאות ידועות הן Java ו־.NET. שתי הסביבות משתמשות במכונה וירטואלית, שהיא תוכנה שמדמה מחשב להרצת הקוד.
תגובות גולשים