2011-06-04 7 views
7

Tengo que crear un slicer de programa en java para cortar el código fuente en función de un criterio de división. Veo que hay muy pocas bibliotecas para este propósito. No obstante, me gustaría intentarlo yo mismo. He leído algunas publicaciones sobre el tema que incluyen el uso de un gráfico de dependencia para resolver los datos y controlar las dependencias en un programa. Un algoritmo de corte se puede utilizar junto con un criterio de corte para generar cortes del programa Java. Alguien ha hecho este tipo de cosas antes? Si es así, ¿podría indicarme la dirección correcta para comenzar con esto? He buscado y buscado y no puedo averiguar por dónde empezar, qué API existen (si las hay).¿Alguien ha creado un slicer de programa en Java?

Un ejemplo sería:

public class Foo { 
    public void fooBar() { 
     int x = 10; 
     int y = 12; 
     String s = ""; 
     for(int j=0; j<10; j++) { 
     s += x; 
     x++; 
     y += 3; 
     } 
     System.out.println("y value " + y); 
    } 
} 

Si se elige un criterio de fragmentación (13, y), donde 13 es la última línea en el código anterior, entonces el resultado será

public class Foo { 
    public void fooBar() { 
     int y = 12; 
     for(int j=0; j<10; j++) { 
     y += 3; 
     } 
    } 
} 

El criterio de división devuelve todas las afirmaciones que pueden afectar a la variable 'y' en la línea 13.

+0

¿Tiene alguna referencia a un cortador de programa comercial o gratuito existente? Realmente no sé lo que quiere que haga el software. Tal vez algunos ejemplos de corte de código fuente a mano? – Marcelo

+2

¿Qué es un "corte" de un programa Java? –

+2

Miré indus (http://indus.projects.cis.ksu.edu). @Jon, mira aquí para el corte de programas (http://en.wikipedia.org/wiki/Program_slicing) – Joeblackdev

Respuesta

1

Hay mucho menos trabajo en esta área. Puede reutilizar el código de alguna utilidad de código abierto como checkstyle o yasca. Luego puede aplicar su propia lógica de implementación para el corte.

1

Tarde, pero puede ser útil para otros: Wala. WALA incluye un slicer, basado en la tabulación sensible al contexto de accesibilidad en el gráfico de dependencia del sistema.

Cuestiones relacionadas