Построение срезов для программ на динамических языках
Предложен метод построения срезов, учитывающий особенности динамических языков программирования и основанный на построении траектории в ходе интерпретации программы и последующем формировании на ее основе графа программных зависимостей. Метод реализован для построения срезов программ на языке Lua путем модификации его интерпретатора.
Авторы
Тэги
Тематические рубрики
Предметные рубрики
В этом же номере:
Резюме по документу**
УДК 004.415.53
Построение срезов для программ
на динамических языках
А.О. Крючков, В.А. Крищенко
МГТУ им. <...> Н.Э. Баумана, Москва, 105005, Россия
Предложен метод построения срезов, учитывающий особенности динамических
языков программирования и основанный на построении траектории в ходе интерпретации
программы и последующем формировании на ее основе графа программных
зависимостей. <...> Метод реализован для построения срезов программ на языке
Lua путем модификации его интерпретатора. <...> Срез программы — это подмножество ее операторов, влияющее
на результат, вычисляемый в заданной точке программы [1]. <...> В последние годы возросла
популярность так называемых динамических языков, характеризующихся,
среди прочего, динамической типизацией, возможностью
модификации типов данных и объектов и встроенными высокоуровневыми
средствами кодогенерации «на лету». <...> Зависимости в программе можно представить несколькими способами,
наиболее распространенный среди которых — граф программных
зависимостей (ГПЗ) [6]. <...> Граф программных зависимостей
2
Построение срезов для программ на динамических языках
В качестве примера представлен граф программных зависимостей
для следующей программы (см. рис. <...> Когда ГПЗ построен, вычисление среза по заданному оператору в
программе, которому соответствует одна из вершин ГПЗ, сводится к
определению множества вершин графа, достижимых по дугам зависимостей
из вершины-критерия, которое и будет являться срезом. <...> При определении достижимости дуги зависимостей по данным и
управлению равнозначны. <...> Задачу построения среза, таким образом,
можно считать решенной при наличии ГПЗ для анализируемой программы. <...> При
построении срезов для программы и конкретного набора ее
исходных данных построенный ГПЗ модифицируется некоторым образом
с учетом траектории выполнения, собранной при фактическом
запуске программы. <...> В качестве определяющих
особенностей динамических языков, влияющих на создание срезов,
можно <...>
** - вычисляется автоматически, возможны погрешности
Похожие документы: