מכונה וירטואלית – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
←מכונה וירטואלית לשפת תכנות: עריכה לשונית קטנה. |
|||
שורה 34:
מכונה וירטואלית, לפיכך, היא [[תוכנית מחשב]], המקבלת כקלט הוראות הכתובות בשפת ביניים, מתרגמת אותן לשפת מכונה ומריצה אותן. להבדיל ממהדר, אשר מתרגם את התוכנית כולה בטרם ניתן יהיה להריץ אותה, המכונה הווירטואלית מבצעת את התרגום תוך כדי ההרצה עצמה, בדומה ל[[מפרש (תוכנה)|מפרש]]. חשוב להדגיש כי המכונה הווירטואלית לא מתרגמת שפה עילית לשפת ביניים. שלב זה מבוצע על ידי המהדר בשלב הידור התוכנית.
[[Java]] היא דוגמה בולטת ל[[שפת תכנות]] המתבססת על מכונה וירטואלית. [[תוכנית מחשב]] שנכתבה בשפת Java [[מהדר|מהודרת]] לא ל[[שפת מכונה]], שנועדה מטבעה לחומרה מסוימת, אלא ל-[[bytecode]] המתבצע על-גבי מכונה וירטואלית - (Java Virtual Machine ([[JVM]]. זו התכונה המאפשרת לתוכנית Java לרוץ על כל
ארכיטקטורת [[NET.]] של [[מיקרוסופט]] מכילה אף היא רכיב החוצץ בין התוכנית המתבצעת לבין מערכת ההפעלה, המכונה Common Language Runtime (בקיצור CLR), ושפתו נקראת Common Intermediate Language (בקיצור [[CIL]], "שפת ביניים משותפת"). רכיב זה מהווה למעשה מכונה וירטואלית, המפרידה בין החומרה לתוכנה. רכיב זה מאפשר לפתח בשפות שונות, כל עוד השפה מהודרת לקובץ היכול לרוץ על ה־CLR.
|