Autor:
Galindo, Carlos

Cargando...
Foto de perfil

E-mails conocidos

cargaji@vrain.upv.es

Fecha de nacimiento

Proyectos de investigación

Unidades organizativas

Puesto de trabajo

Apellidos

Galindo

Nombre de pila

Carlos

Nombre

Nombres alternativos

Afiliaciones conocidas

Universitat Politècnica de València, Spain
Página completa del ítem
Notificar un error en este autor

Resultados de la búsqueda

Mostrando 1 - 4 de 4
  • Artículo
    Conditional Control Dependence to Represent Catch Statements in the System Dependence Graph
    Galindo, Carlos; Pérez Rubio, Sergio; Sílva, Josep. Actas de las XX Jornadas de Programación y Lenguajes (PROLE 2021), 2021-09-22.
    Program slicing is a technique for program analysis and transformation with many different applications such as program debugging, program specialization, and parallelization. The system dependence graph (SDG) is the most commonly used data structure for program slicing. In this paper, we show that the presence of exception-handling constructs can make the SDG produce incorrect and sometimes even incomplete slices. We showcase the instances of incorrectness and incompleteness and we propose a new kind of control dependence: conditional control dependence; which produces more precise slices in the presence of catch statements.
  • Artículo
    Grafos para fragmentación de programas sensible a los campos que mejoran al usarlos
    Galindo, Carlos; Pérez Rubio, Sergio; Sílva, Josep. Actas de las XXII Jornadas sobre Programación y Lenguajes (PROLE 2023), 2023-09-12.
    El nivel de granularidad que proporciona el Program Dependence Graph (PDG) al representar estructuras de datos complejas (listas, arrays, objetos...) es insuficiente para diferenciar entre sus elementos al aplicar fragmentación de programas. En un trabajo anterior, se propuso un nuevo modelo, el Constrained-Edges Program Dependence Graph (CE-PDG), capaz de obtener fragmentos precisos al aplicar fragmentación a programas con estructuras de datos recursivas. En este trabajo, mostramos cómo los mecanismos utilizados por el CE-PDG pueden ser mejorados, proporcionando fragmentos notablemente más precisos de una manera más eficiente. Estas mejoras implican dos cambios distintos sobre el proceso de fragmentación: un nuevo criterio de parada para el algoritmo y una sustitución permanente en las restricciones del CE-PDG que mejora la eficiencia del recorrido cuantos más fragmentos se calculan sobre el grafo.
  • Artículo
    Object Variable Dependencies in Object-Oriented Programs
    Galindo, Carlos; Pérez Rubio, Sergio; Sílva, Josep. Actas de las XX Jornadas de Programación y Lenguajes (PROLE 2021), 2021-09-22.
    The System Dependence Graph (SDG) is a program representation that is the basis of program slicing, a technique that extracts the part of the program that can affect the values computed at a given program point (known as the slicing criterion). Several approaches have enhanced the SDG representation to deal with object-oriented programs, being the most advanced approach the Java System Dependence Graph (JSysDG). In this paper, we show that even the JSysDG does not produce complete slices in all cases when some object variables are selected as the slicing criterion. Then, we extend the JSysDG with the addition of a specific flow dependence for object type variables called object- flow dependence. This extension provides a more accurate flow representation between object variables and its data members and allows us to obtain complete slices when an object variable is considered as slicing criterion.
  • Artículo
    Indecidibilidad del análisis de dependencias de datos
    Galindo, Carlos; Pérez Rubio, Sergio; Sílva, Josep. Actas de las XXII Jornadas sobre Programación y Lenguajes (PROLE 2023), 2023-09-12.
    Los análisis de dependencias de datos (ADD) responden a la pregunta: ¿qué partes del programa pueden influenciar el valor de esta variable? Estos análisis son comunes en herramientas como compiladores, depuradores y muchos otros análisis de software para determinar terminación, paralelizar automáticamente, depurar, optimizar, etc. Sabemos que en el caso general ADD es indecidible debido a la no-terminación: siempre es posible encontrar un programa para el que no podemos asegurar si la variable de interés es alcanzable (el programa podría divergir antes), y por tanto no podemos determinar si alguna parte del programa podría influenciar a esa variable. En enero del 2000, Thomas Reps probó la indecidibilidad de un ADD para programas que sí terminan, demostrando que la no-terminación no es la única causa fundamental de indecidibilidad. El ADD que Reps utilizó, sin embargo, era un análisis muy específico. Este trabajo utiliza y expande los resultados de Reps para determinar que existe una clase de ADDs (que incluye el propio ADD usado por Reps) que son indecidibles incluso para programas que sí terminan. Además, describimos qué características debe tener un lenguaje de programación para que los ADDs de esta clase sean indecidibles en el caso general.