איסוף זבל (מדעי המחשב) – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
←Finalization: שגיאה דקדוקית תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד |
HopeIsland (שיחה | תרומות) הרחבה, עריכה - תיקון של שימוש לא מחייב במושג אובייקט (ההקצאה היא של זכרון, לא של אובייקט). |
||
שורה 1:
{{פירוש נוסף|נוכחי=מושג בתכנות|אחר=דרכי איסוף פסולת|ראו=[[מדרג הפסולת]]}}
'''איסוף זבל''' (באנגלית: '''Garbage collection''') הוא תהליך
המנגנון הומצא ויושם לראשונה בשנת 1959 על ידי ג'ון מקארתי עבור שפת [[Lisp]].{{הערה| ג'ון מקארתי, [http://www-formal.stanford.edu/jmc/history/lisp.ps History Of Lisp], [[אוניברסיטת סטנפורד]], 1979}} איסוף זבל נפוץ בשפות תכנות [[תכנות מונחה-עצמים|מונחות-עצמים]] מודרניות כגון [[Java]] ו-[[C Sharp|#C{{כ}}]], וכן בשפות המורצות על ידי [[מפרש (תוכנה)|מפרש]] כמו [[Perl]], {{כ}}[[פייתון (שפת תכנות)|פייתון]], {{כ}}[[PHP]] ו-[[JavaScript]]. יש שפות כגון [[עדה (שפת תכנות)|עדה]] ו[[D (שפת תכנות)|שפת D]] (ובמידה מסוימת גם [[דלפי (שפת תכנות)|Delphi]]) המאפשרות למתכנת לבחור אם להשתמש במנגנון זה או לנהל הקצאות ושחרור זיכרון באופן עצמאי
בהקשר הנוכחי, "זבל" הוא
איסוף זבל חוסך
חסרונו הבולט של המנגנון הוא תוספת מסוימת של תקורות בביצועי התוכנית בפועל, היבט משמעותי במיוחד עבור תוכניות [[מערכת זמן אמת|זמן אמת]].
שורה 12:
==יישום איסוף אוטומטי בשפות תכנות==
בשפת [[C (שפת תכנות)|C]] לא קיים איסוף זבל
בשפת [[C Plus Plus|++C]], בדומה לשפת [[C (שפת תכנות)|C]], לא קיים איסוף זבל אוטומטי, אבל ניתן
==טכניקות איסוף זבל אוטומטי==
|