Metody realizacji języków programowania/MRJP Ćwiczenia 9
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
autor: Marcin Kowalczyk (qrczak@mimuw.edu.pl)
Zadanie 1
Rozważmy następujący fragment programu w Pythonie:
class N:
def __init__(self, name, children):
self.name = name
self.children = children
a = N('a', [])
b = N('b', [a])
c = N('c', [b])
b.children.append(c)
d = N('d', [c])
a = b = c = d = None
Które obiekty spośród obiektów a, b, c, d będą miały zwolnioną pamięć (z punktu widzenia dostępności zajmowanej przez nie wcześniej pamięci dla alokacji innych obiektów tego programu) natychmiast po wykonaniu ostatniej linii, a które w ogóle mają szansę mieć zwolnioną pamięć przed zakończeniem programu, jeśli odśmiecacz użytej implementacji Pythona działa na zasadzie:
- zliczania odwołań?
- mark & sweep?
- odśmiecania kopiującego?