Zamki i klucze
Locks-and-keys to rozwiązanie problemu zwisających wskaźników w językach programowania komputerów .
Podejście zamków i kluczy przedstawia wskaźniki jako uporządkowane pary (klucz, adres), gdzie klucz jest wartością całkowitą. Zmienne dynamiczne sterty są reprezentowane jako pamięć dla zmiennej plus komórka dla wartości blokady całkowitej. Kiedy zmienna jest przydzielana, wartość blokady i umieszczana zarówno w komórce zmiennej, jak iw komórce klucza wskaźnika. Każdy dostęp do wskaźnika porównuje te dwie wartości, a dostęp jest dozwolony tylko wtedy, gdy wartości są zgodne.
Gdy zmienna jest zwalniana, klucz jej wskaźnika jest modyfikowany tak, aby zawierał wartość inną niż komórka zmiennej. Od tego momentu każda próba wyłuskania wskaźnika może zostać oznaczona jako błąd. Ponieważ kopiowanie wskaźnika kopiuje również wartość jego komórki, zmiana klucza uporządkowanej pary bezpiecznie wyłącza wszystkie kopie wskaźnika.
Zobacz też