А.О. Крючков, В.А. Крищенко
16
При запуске с входными данными «2 3 product» получается ГПЗ с
отмеченными вершинами, входящими в срез по критерию
print
(
result
) (рис. 11). В ГПЗ выделены три подграфа: в порядке свер-
ху вниз это подграф основной программы, подграф сгенерированной
с помощью функции
loadstring
процедуры и подграф процедуры
product
, вызванной из сгенерированного кода. Знак вопроса в под-
графе сгенерированной процедуры символизирует отсутствие исход-
ного кода для этого оператора. Дуги вызовов и возвратов показаны
линиями из точек.
Рис. 11.
Срез по оператору
print(result)
из опыта № 2
При указанных входных данных процедура sum, описанная в
программе, ни разу не вызывается. В срезе действительно не присут-
ствует ни тело процедуры sum, ни оператор, в котором процедура
была сформирована как объект, ни оператор, в котором функция бы-
ла связана с именем.
Работа выполнена при частичной поддержке Российского фонда
фундаментальных исследований (грант № 13-07-00918).
ЛИТЕРАТУРА
[1] Weiser M. Program Slicing.
Proc. of the 5th International Conference on Soft-
ware Engineering — IEEE Computer Society Press
, 1981, pp. 439–449
[2] В.Н. Касьянов, И.Л. Мирзуитова.
Slicing: срезы программ и их использо-
вание
. Сибирское отделение РАН, 2002, 116 c.
[3] Korel B., Laski J.W. Dynamic Program Slicing.
Information Processing Let-
ters
. Elsevier, 1988, vol. 29, no. 3, pp. 155–163.