24-01-2009, 23:15
|
|
|
|
חבר מתאריך: 03.11.02
הודעות: 21,199
|
|
ברשותך אני אחלק את השאלה למספר חלקים:
ציטוט:
איך microsoft עשו את זה בעצם כלומר איך ה.net לוקח קודים הרשומים בשפות שונות ובעצם מקמפל אותם לשפה אחת (msil)
|
לכל שפה (C#, VB.NET וכו') יש קומפיילר משלה שמקמפל את קוד המקור של אותה שפה ל-MSIL, ממש כפי שכאשר לא מדובר ב-.NET (לדוגמא פסקל, VB או ++C) לכל שפה יש קומפיילר המקמפל אותה לשפת מכונה.
ציטוט:
בא נגיד וכרגע אין את .net ונותנים לך קוד שרשום בשפה אחת ועוד קוד בשפה אחרת ואומרים לך תיקח את שתי הקודים האלה ותגרום להם לעבוד ביחד.. השאלה שלי היא איך היית עושה את זה?
|
אתה מתכוון לתוכנית בשפה A שמריצה פונקציות שנכתבו בשפה B?
אם זה הדבר (וזה, בצורה מסוימת מה שקורה גם ב-.NET), אזי את הקוד של שפה B הייתי מקמפל כקובץ ספריה (לדוגמא, DLL תחת הפלטפורמה של חלונות) ומשתמש בפונקציות הנמצאות בו בתוכנית הכתובה בשפה A.
כיצד זה נעשה (באופן ממש כללי)?
הקומפיילר של שפה B מתרגם את קטע הקוד בשפה B לשפת מכונה.
הקומפיילר של שפה A מתרגם את קטע הקוד בשפה A לשפת מכונה.
בקטע הקוד שנכתב בשפה A ש קריאה לפונקציה שנכתבה בשפה B, אולם בשלב הזה מדובר בשני קטעי קוד בשפת מכונה, כך שממש לא משנה מה היתה שפת המקור.
הדרישה היחידה היא ששפת התכנות A מאפשרת שימוש בספריות חיצוניות וששפת התיכנות B מאפשרת קימפול בתור סיפריה (וכל שפת תכנות המכבדת את עצמה עושה זאת).
*
ב-.NET כל התהליך הזה שקוף למשתמש, ואתה יכול בקלות ליצור אפליקציה שבנויה מקטעי קוד בשפות שונות.
|