Reflection (תכנות) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ קישור ל-אובייקט (מדעי המחשב)
שורה 28:
* ליצור [[מפרש (תוכנה)|מפרש]] חדש עבור ה-[[bytecode]] של השפה, על מנת לתת משמעות או שימוש חדשים עבור מבנה תכנותי מסוים.
 
שירותים אלה ניתנים למימוש בדרכים שונות. שפות העוברות [[מהדר|הידור]] מסתמכות על מערכת סביבת ההרצה (runtime) שלהן כדי לקבל מידע אודות קוד המקור. לדוגמה, [[קובץ הרצה]] מקומפלמהודר בשפת [[Objective-C]], שומר את שמות כל המתודות בבלוק בתוך הקובץ, ובכך מספק טבלה להתאמה בין שמות המתודות למתודות עצמן בתוכנית המקומפלת.
 
בשפה מהודרת התומכת ביצירת פונקציות בזמן ריצה, כדוגמת [[Common Lisp]], סביבת ההרצה חייבת לכלול מהדר או מפרש. כמו כן, ניתן לממש reflection גם בשפות שאינן כוללות מנגנונים מובנים לתמיכה ב-reflection, על ידי שימוש במערכת ל-[[program transformation]], כדי להגדיר שינויים אוטומטיים בקוד המקור.