לדלג לתוכן

Bytecode

מתוך ויקיפדיה, האנציקלופדיה החופשית
גרסה מ־15:31, 8 ביוני 2012 מאת רוני ב. (שיחה | תרומות) (ערך חדש - מבוסס על תרגום הערך המקביל באנגלית)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)
הערך נמצא בשלבי עבודה: כדי למנוע התנגשויות עריכה ועבודה כפולה, אתם מתבקשים שלא לערוך את הערך בטרם תוסר ההודעה הזו, אלא אם כן תיאמתם זאת עם מניח התבנית.
אם הערך לא נערך במשך שבוע ניתן להסיר את התבנית ולערוך אותו, אך לפני כן רצוי להזכיר את התבנית למשתמש שהניח אותה, באמצעות הודעה בדף שיחתו.
הערך נמצא בשלבי עבודה: כדי למנוע התנגשויות עריכה ועבודה כפולה, אתם מתבקשים שלא לערוך את הערך בטרם תוסר ההודעה הזו, אלא אם כן תיאמתם זאת עם מניח התבנית.
אם הערך לא נערך במשך שבוע ניתן להסיר את התבנית ולערוך אותו, אך לפני כן רצוי להזכיר את התבנית למשתמש שהניח אותה, באמצעות הודעה בדף שיחתו.

Bytecode (בייטקוד), ידוע גם בשם p-code (קוד נייד - portable code), הוא צורה של סט פקודות אשר תוכנן עבור ביצוע יעיל על ידי מפרש תוכנה. להבדיל מקוד מקור הקריא על ידי בני אדם, בייטקוד מורכב מקודים נוּמריים קומפקטיים, קבועים, והפניות (references) - בדרך כלל כתובות נומריות; אשר מקודדים את תוצאות הניתוח התחבירי והסמנטי של דברים כגון טיפוס הנתונים, תחום ההכרה (scope), ועומק הקינון (nesting) של רכיבי תוכנה.

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

מאחר והוראות הבייטקוד מעובדות על ידי תוכנה, הן יכולות להגיע ברמות שונות של מורכבות. עם זאת, בדרך כלל הן דומות להוראות חומרה מסורתיות; מכונות מחסנית (stack machines) הן הנפוצות ביותר, אבל נבנו גם מכונות רגיסטרים (register machines) וירטואליות. חלקים שונים של התוכנית עשויים להישמר בקבצים נפרדים, בדומה ל-object files המקושרים על ידי linker, אבל הם נטענים דינאמית בזמן ריצה.