При реализации точной сборки мусора всегда возникает проблема выяснить, какие слова в стеке являются указателями, а какие - другие виды данных, такие как целые числа или числа с плавающей запятой. Интерпретированные языки обычно решают эту проблему, делая все указателем; компиляторы для некоторых языков, такие как Lisp, как правило, решают его, используя биты тегов, чтобы различать указатели и целые числа.
Но как насчет компиляторов JIT для таких языков, как Java и С#, которые поддерживают полные целые числа машинных слов и чисел с плавающей запятой? Как они сообщают, какие из содержимого стека и регистры процессора являются указателями?