Построение срезов для программ на динамических языках
Опубликовано: 15.10.2013
Авторы: Крючков А.О., Крищенко В.А.
Опубликовано в выпуске: #6(18)/2013
DOI: 10.18698/2308-6033-2013-6-777
Раздел: Информационные технологии
Предложен метод построения срезов, учитывающий особенности динамических языков программирования и основанный на построении траектории в ходе интерпретации программы и последующем формировании на ее основе графа программных зависимостей. Метод реализован для построения срезов программ на языке Lua путем модификации его интерпретатора.
Литература
[1] Weiser M. Program Slicing. Proc. of the 5th International Conference on Software Engineering — IEEE Computer Society Press, 1981, pp. 439-449
[2] В.Н. Касьянов, И.Л. Мирзуитова. Slicing: срезы программ и их использование. Сибирское отделение РАН, 2002, 116 с.
[3] Korel B., Laski J.W. Dynamic Program Slicing. Information Processing Letters. Elsevier, 1988, vol. 29, no. 3, pp. 155-163
[4] Richards G., Lebresne S., Burg B., Vitek J. An Analysis of the Dynamic Behavior of JavaScript Programs. Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation, 2010, pp. 1-12
[5] Holkner A., Harland J. Evaluating the dynamic behaviour of Python applications. Proceedings of the Thirty-Second Australasian Conference on Computer Science, vol. 91, pp. 19-28
[6] Ferrante J., Ottenstein K. J., Warren J. D. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems (TOPLAS), 1987, vol. 9, no. 3, pp. 319-349
[7] Agrawal H., Horgan J.R. Dynamic program slicing. Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, pp. 246-256
[8] Horwitz S., Reps T., Binkley D. Interprocedural slicing using dependence graphs. Proceedings of the SIGPLAN '88 conference on Programming language design and implementation, 1990, pp. 35-46
[9] Georgiadis L., Werneck R.F., Tarjan R.E. Finding dominators in practice. Journal of Graph Algorithms and Applications, 2006, vol. 10, no. 1, pp. 69-94
[10] Ball T., Horwitz S. Slicing Programs with Arbitrary Control-flow. Proceedings of 1st conference on automated algorithmic debugging, 1993, pp. 206-222