Background Image
Previous Page  6 / 22 Next Page
Information
Show Menu
Previous Page 6 / 22 Next Page
Page Background

записи в локально видимую память и т.д. Кроме того, модель анали-

затора заведомо допускает упрощения, так как анализатор не может

досконально смоделировать поведение программы. Это означает, что

ряд эффектов операторов не будет учтен, т.е. на моделирование неко-

торых эффектов операторов будет затрачено время, однако результат

этого моделирования не отразится в изменении состояния. Учет этих

упрощений и ограничений анализатора позволяет устранить непро-

изводительные затраты времени, поскольку при применении резюме

непроизводительные вычисления не выполняются повторно. Возмож-

но, что некоторые эффекты самого применения резюме не могут быть

учтены моделью анализатора и также будут отнесены к непроизводи-

тельным вычислениям. Тем не менее время, затрачиваемое на приме-

нение резюме, по-прежнему не будет превышать время, требуемое на

анализ вызова функции методом встраивания. Это объясняется тем,

что набор эффектов, получаемых в результате применения резюме,

включается строго или совпадает с набором эффектов, моделируемых

при анализе методом встраивания.

В настоящей работе рассмотрен следующий набор эффектов, вли-

яющих на состояние анализируемой программы в процессе ее выпол-

нения.

1. Принятие решений о выборе пути выполнения. Выбор пути вы-

полнения сопровождается наложением ограничений на символьные

значения, относительно которых принимается решение о выборе пути.

Если эти символьные значения содержат ссылки на внешние по отно-

шению к вызываемой функции регионы памяти, то накладываемые

ограничения должны быть отражены в резюме. Кроме того, как бы-

ло показано выше, каждое принятие решения влияет на присутствие и

порядок операторов в последовательности выполнения, а следователь-

но, и на набор эффектов, включаемых в резюме. Наконец, наложение

ограничений на входные данные функции в зависимости от выбора

пути выполнения позволяет сохранить контекстную чувствительность

при анализе, поскольку определенные пути выполнения могут быть

достижимы лишь при ограниченном наборе входных значений аргу-

ментов функции и значений, находящихся во внешней по отношении

к ней памяти.

2. Модификация регионов памяти с областью видимости, отличной

от локальной, т.е. находящихся в статической или глобальной области

видимости, принадлежащих куче, а также модификация аргументов,

переданных по неконстантному указателю или неконстантной ссылке,

и областей памяти, относящихся к ним (возможно, с использованием

арифметики указателей).

3. Инвалидация регионов памяти, т.е. пометка некоторых регио-

нов как изменивших значение на неизвестное. Обычно выполняется

80 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2015. № 5