Как задетектировать зацикливание в программе. Ограничение на размер цикла - S последовательных состояний. Могу получить хеш состояния. Пока придумал только создавать trie хешей и детектировать по превышению макс глубины. Это требует трекинга S указателей на ноды каждую итерацию и рост на S нод.
Можно ли что-нибудь придумать здесь? Допустим можно задетектировать не сразу, а с опозданием на M циклов.
статически или динамически? Если статически то это не всегда разрешимая задача, а вообще этим занимается reachability analysis и это довольно сложная тема для общего случая (для тривиальных програм возможно и простая). Если же динамически (в рантайме) довольно просто, достаточно хранить мета-состояние цикла и каждую итерацию сверять текущее состояние с предыдущим, если оно вдруг стало одинаковым - у нас бесконечный цикл