Как оценить значение переменной с помощью статического анализа?
Я хочу написать программу для этого, основанную на встроенном анализе Reot-Definition от Soot. Теперь мне интересно, это правильный подход? Я искал и обнаружил, что никто не заинтересован в этом направлении.
Какие-либо предложения?
2 ответа
Это действительно общая проблема, которую вы заявляете. Достижение определений не имеет к этому никакого отношения. Глобальная нумерация значений - это больше, чем вы, по-видимому, хотите, но это слишком сложно понять из вашего описания. Попробуйте список рассылки Soot с более подробным описанием проблемы.
То, что вы, вероятно, хотите сделать, это объединить набор диапазонов с помощью итерационного решателя потока данных. Вы хотите объединить значения диапазона из входных данных в значения диапазона для набора определений, которые пересекают основные блоки.
Для этого вам, как правило, нужен график потока управления и функции передачи по основным блокам. Я полагаю, что вы можете относиться к графику достижения определений аналогичным образом.
Затем вам потребуется межпроцедурное распространение диапазона, чтобы протолкнуть диапазоны по коду.