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?