פרשנות לעומת שפות תכנות מורכבות: מה ההבדל?

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

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

אוקיי ... אבל מה זה בעצם אומר?

דמיין שיש לך מתכון לחומוס שאתה רוצה להכין, אבל הוא כתוב ביוונית עתיקה. ישנן שתי דרכים בהן אתה, לא דובר יוונית עתיקה, יכול לעקוב אחר הוראותיו.

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

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

שפות מקובלות

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

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

דוגמאות לשפות מורכבות טהורות הן C, C ++, Erlang, Haskell, Rust ו- Go.

פירשו שפות

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

פעם שפות פרשניות היו איטיות משמעותית משפות מקומפלים. אבל, עם התפתחות הידור בדיוק בזמן, הפער הזה מצטמצם.

דוגמאות לשפות נפוצות המתפרשות הן PHP, Ruby, Python ו- JavaScript.

אזהרה קטנה

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

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

יתרונות וחסרונות

יתרונות השפות המהודרות

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

חסרונות של שפות מורכבות

החסרונות הבולטים הם:

  • זמן נוסף הדרוש להשלמת כל שלב האוסף לפני הבדיקה
  • תלות בפלטפורמה של הקוד הבינארי שנוצר

יתרונות השפות המתפרשות

שפות פרשניות נוטות להיות גמישות יותר, ולעתים קרובות מציעות תכונות כמו הקלדה דינמית וגודל תוכנית קטן יותר. כמו כן, מכיוון שמתורגמנים מבצעים את קוד תוכנית המקור בעצמם, הקוד עצמו אינו תלוי בפלטפורמה.

חסרונות של שפות מתפרשות

החיסרון הבולט ביותר הוא מהירות הביצוע האופיינית בהשוואה לשפות מקומפלים.