Инженерный журнал: наука и инновацииЭЛЕКТРОННОЕ НАУЧНО-ТЕХНИЧЕСКОЕ ИЗДАНИЕ
свидетельство о регистрации СМИ Эл № ФС77-53688 от 17 апреля 2013 г. ISSN 2308-6033. DOI 10.18698/2308-6033
  • Русский
  • Английский
Статья

Построение срезов для программ на динамических языках

Опубликовано: 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