מהי שפת אסיפה
שפות הרכבה הן שפות ברמה נמוכה הספציפיות לארכיטקטורת מחשבים מסוימת. לשם השוואה, ניתן להשתמש בשפות תכנות רבות ברמה גבוהה בארכיטקטורות מרובות, אך דורשות פרשנות או קומפילציה לפני שהיא מגיעה למעבד.
פורץ שפת הרכבה
שפות הרכבה הוחלפו ברובן בשפות תכנות ברמה גבוהה. מהנדסי תוכנה מעדיפים לכתוב אפליקציה יחידה הפועלת בכל המחשבים האישיים - ללא קשר אם יש להם מעבדי אינטל או AMD - המשתמשים בשפות ברמה גבוהה. לשם השוואה, הם יידרשו לכתוב יישומים נפרדים עבור כל סוג של ארכיטקטורת מחשבים בשפות הרכבה. יישומים אלה יהפכו לקשים ביותר לתחזוקה שכן כל עדכון יכלול עדכון של מספר אפליקציות שונות.
ההוראות הבסיסיות ביותר שמבוצעות על ידי מחשב הן קודים בינאריים, המורכבים מאלו ואפסים, מכיוון שאלו ניתן לתרגם ישירות למצבים לסירוגין ולחשמל עבור חשמל הנע דרך מעבד. כמובן, זה לא מעשי עבור מהנדסי תוכנה - או כל בני אדם - לתרגם מידע לאפסים ואפסים, ולכן שפות הרכבה פותחו כדי לפשט את התהליך. שפות הרכבה אלה עדיין היו כרוכות בעבודות רבות בתרגום קוד על פני ארכיטקטורות שונות, כך ששפות תכנות ברמה גבוהה יותר הגיעו אחריהן.
עם זאת, שפות הרכבה עדיין נפוצות בשווקים מסוימים הדורשים מהירות גבוהה וביצועים. סימולטורי טיסה עשויים להשתמש בארכיטקטורות מיוחדות ביותר בהן שפות ברמה הגבוהה ביותר אינן עובדות, מה שאומר ששפות הרכבה עשויות להיות הכרח. פעולות מסחר בתדירות גבוהה עשויות גם להשתמש בשפות הרכבה מכיוון שהן יכולות לבצע ניתוחים ועסקאות במהירות רבה בהרבה משפות ברמה גבוהה, מה שעלול לגרום להכנסות מסחר טובות יותר ורווחיות יחסית לתחרות.
דוגמה לשפות הרכבה
שפות הרכבה שולחות הוראות למעבד, לזיכרון ולרכיבי מחשב אחרים. כיוונים אלה הם גרסאות מעט יותר מופשטות של קוד בינארי, המורכב אך ורק מאלפים ואפסים. לדוגמה, הקוד 10110000 01100001 אומר למעבד להעביר ערך 8 סיביות לפנקס. על ידי שימוש בתבנית הקסדצימאלית ניתן לקצר הוראות אלה ל- B0 61. שפות הרכבה הופכות את זה למובן עוד יותר על ידי הצגת מפעילים, כמו MOV AL, 61h, שם MOV הוא קיצור של "מעבר".
שפות תכנות ברמה גבוהה לרוב מטפלות במשימות אלה באופן אוטומטי ומאפשרות למהנדסי תוכנה להתמקד במשימות ברמה הרבה יותר גבוהה, כמו הקצאת משתנים והשלמת פעולות בהן. לדוגמה, מהנדס תוכנה עשוי להגדיר משתנה ב- JavaScript באמצעות let myVariable = 123 והמשתנה הזה יוקצה אוטומטית למקום בזיכרון על סמך גודל מספר 123 שלם ושל גורמים אחרים. מהנדס התוכנה אינו צריך לדאוג לניהול זיכרון והוא יכול להתמקד במה שמשתנה עושה.
