Piszę kompilator dla dość standardowej maszyny stosu. Teraz chcę dodać śmieciarz. Widzę, że mogę wygenerować jakieś "mapy stosów", aby wiedzieć, które zmienne są pierwiastkami gc w każdym rekordzie aktywacji. Jednak nie mam pojęcia, jak radzić sobie z wartościami pośrednimi wciśniętymi w stos podczas wykonywania. Język, który kompiluję, jest podobny do Pascala, więc nie potrzebuję i nie chcę używać znaczników do identyfikowania wskaźników z innych typów danych.Jak znaleźć korzenie gc w maszynie stosu?
Byłbym wdzięczny za wszelkie wskazówki/wskazówek, w jaki sposób
- Znajdź gc korzenie w stosie w dowolnym momencie w czasie (czyli w jaki sposób określić, które z wartości pośrednich, które zostały zepchnięte na stosie są korzenie gc).
- Zwyczajowe kodowania informacji (czyli jak generować i zakodować „mapy stos”)
Dziękuję bardzo! Nicolas