Metody realizacji języków programowania/MRJP Ćwiczenia 9: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
(Brak różnic)
|
Wersja z 16:22, 1 paź 2006
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?