Sílva, Josep

Foto de perfil

E-mails conocidos

Fecha de nacimiento

Proyectos de investigación

Unidades organizativas

Puesto de trabajo



Nombre de pila



Nombres alternativos

Silva, Josep

Afiliaciones conocidas

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

Páginas web conocidas

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

Resultados de la búsqueda

Mostrando 1 - 8 de 8
  • 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
    Page-Level Webpage Menu Detection
    Alarte, Julián; Insa, David; Sílva, Josep. Actas de las XVI Jornadas de Programación y Lenguajes (PROLE 2016), 2016-09-02.
    One of the key elements of a website are Web menus, which provide fundamental information about the structure of the own website. For humans, identifying the main menu of a website is a relatively easy task. However, for computer tools identifying the menu is not trivial at all and, in fact, it is still a challenging unsolved problem. From the point of view of crawlers and indexers, menu detection is a valuable technique, because processing the menu allows these tools to immediately find out the structure of the website. Identifying the menu is also essential for website mapping tasks. With the information of the menu, it is possible to build a sitemap that includes the main pages without having to follow all the links. In this work, we propose a novel method for automatic Web menu detection that works at the level of DOM. Our implementation and experiments demonstrate the usefulness of the technique.
  • Artículo
    Page-Level Main Content Extraction from Heterogeneous Webpages
    Alarte, Julián; Sílva, Josep. Actas de las XX Jornadas de Programación y Lenguajes (PROLE 2021), 2021-09-22.
    The main content of a webpage is often surrounded by other boilerplate elements related to the template, such as menus, advertisements, copyright notices, comments, etc. For crawlers and indexers, isolating the main content from the template and other noisy information is an essential task, because processing and storing noisy information produce a waste of resources such as bandwidth, storage space, computing time, etc. Besides, the detection and extraction of the main content is useful in different areas, such as data mining, web summarization, content adaptation to low resolutions, etc. This work introduces a new technique for main content extraction. In contrast to most techniques, this technique not only extracts text, but also other types of content, such as images, animations, etc. It is a DOM-based page-level technique, thus it only needs to load one single webpage to extract the main content. As a consequence, it is efficient enough as to be used online (in real-time). We have empirically evaluated the technique using a suite of real heterogeneous benchmarks producing very good results compared with other well-known content extraction techniques. Publicado en: ACM Transactions on Knowledge Discovery from Data. Año 2021
  • Artículo
    A Collection of Website Benchmarks Labelled for Template Detection and Content Extraction
    Alarte, Julián; Insa, David; Sílva, Josep; Tamarit, Salvador. Actas de las XV Jornadas de Programación y Lenguajes (PROLE 2015), 2015-09-15.
    Template detection and content extraction are two of the main areas of information retrieval applied to the Web. They perform different analyses over the structure and content of webpages to extract some part of the document. However, their objectives are different. While template detection identifies the template of a webpage (usually comparing with other webpages of the same website), content extraction identifies the main content of the webpage discarding the other part. Therefore, they are somehow complementary, because the main content is not part of the template. It has been measured that templates represent between 40% and 50% of data on the Web. Therefore, identifying templates is essential for indexing tasks because templates usually contain irrelevant information such as advertisements, menus and banners. Processing and storing this information is likely to lead to a waste of resources (storage space, bandwidth, etc.). Similarly, identifying the main content is essential for many information retrieval tasks. In this paper, we present a benchmark suite to test different approaches for template detection and content extraction. The suite is public, and it contains real heterogeneous webpages that have been labelled so that different techniques can be suitable (and automatically) compared.
  • 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.