Autor:
Pérez Rubio, Sergio

Cargando...
Foto de perfil

E-mails conocidos

serperu@dsic.upv.es
sergio.perez.rubio@hotmail.com

Fecha de nacimiento

Proyectos de investigación

Unidades organizativas

Puesto de trabajo

Apellidos

Pérez Rubio

Nombre de pila

Sergio

Nombre

Nombres alternativos

Perez Rubio, Sergio
Perez, Sergio
Pérez, Sergio

Afiliaciones conocidas

Departamento de Sistemas Informáticos y Computación. Universitat Politècnica de València, Spain
Universitat Politècnica de València , Spain

Páginas web conocidas

Página completa del ítem
Notificar un error en este autor

Resultados de la búsqueda

Mostrando 1 - 5 de 5
  • 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
    How to construct a suite of program slices
    Insa, David; Pérez Rubio, Sergio; Sílva, Josep. Actas de las XVI Jornadas de Programación y Lenguajes (PROLE 2016), 2016-09-02.
    Program slicing is a technique to extract the part of a program (the slice) that influences or is influenced by a set of variables at a given point. Computing minimal slices is undecidable in the general case. Obtaining the minimal slice of a given program is computationally prohibitive even for very small programs. Hence, no matter what program slicer we use, in general, we cannot be sure that our slices are minimal. This is probably the fundamental reason why no benchmark collection of minimal program slices exists, even though this would be of great interest. In this work, we present the first suite of quasi-minimal slices (i.e., we cannot prove that they are minimal, but we provide technological evidences, based on different techniques, that they probably are). We explain the process of constructing the suite, the methodology and tools that were used, and the obtained results. The suite comes with a collection of Erlang benchmarks together with different slicing criteria and the associated quasi-minimal slices. This suite can be used to evaluate and compare program slicers, but it is particularly useful to develop slicers, because it contains scripts that allow for automatically validating a slicer against the whole suite. Concretely, these scripts produce reports about the impact on recall and precision of any change done during the development of the slicer.
  • 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.