לדלג לתוכן

Java Virtual Machine

מתוך ויקיפדיה, האנציקלופדיה החופשית
גרסה מ־02:08, 18 ביולי 2006 מאת Darth.Vader (שיחה | תרומות)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)

JVM הוא ראשי תיבות של Java Virtual Machine, והוא למעשה המנוע של שפת ג'אווה.

רקע

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

הסטוריה

המכונה הוירטואלית

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

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

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