Home
Teaching
Research
Links
Personal
Contact
Esquina

::RESEARCH INTERESTS

My research interests mainly focus on debugging, and in particular on:

  • Algorithmic Debugging - Can a debugger detect the cause of a bug isolating the portion of code which is responsable? Yes
  • Program Slicing - Can we detect all parts of a code that may have influenced the (wrong) value observed in a variable? Yes
  • Self-Healing Systems - Can a system detect faults, diagnose itself and correct the problem whitout human intervention? Yes
  • Tracing - Is it possible to surf the source code forwards and backwards following data and control dependence chains? Yes

Other interests include program transformations, profiling, partial evaluation, refactoring, concurrent programming (in particular CSP and Petri nets) and information retrieval.



 

 

 

 

 

::RESEARCH ACTIVITIES

I am member of the MIST / ELP / GPLIS research groups.

Some recent conferences in which I participated

As a member of the Steering Committee:

As a member of the Program Committee:

As a member of the Organizing Committee:

As a reviewer: (outdated since 2012)

 

This is a map of my travels in Europe and visited countries and cities

Travels in Europe


My PhD Thesis

I finished my PhD at the Technical University of Valencia.
My advisor was German Vidal.

Formal Information of the Ph.D. Dissertation

Author: Josep Silva Galiana.
Title: Debugging Techniques for Declarative Languages: Profiling, Program Slicing, and Algorithmic Debugging.
Language of Presentation: English.
Advisor: Germán Vidal.
Commission: Elvira Albert, Maríia Alpuente, Rafael Caballero, César Ferri, and Michael Hanus.
Date of Defense: June 29, 2007.
Institution Granting Degree: Technical University of Valencia.
ISBN: 978-84-690-9106-7

You can download my thesis >>here<<.

Abstract

Josep Silva
Debugging Techniques for Declarative Languages: Profiling, Program Slicing, and Algorithmic Debugging

EATCS Bulletin. Number 93, pp. 284-286, 2007.
Available: Online paper

::SOFTWARE

The following list contains webpages with information of some tools that I developed:


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CNC programming Using Haskell
Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages, such as AutoLISP, have been proposed in order to raise the programming abstraction level. Unfortunately, the lack of formality in these languages prevents the verification of programs. In this work, we propose the use of Haskell in CNC programming. Haskell is a modern pure functional language permitting formal verification and presenting advanced features such as lazy evaluation, higher order, etc. These features will allow us to cope with infinite data structures, to apply heuristics to CNC programs in order to optimize them, etc.
Router Specification in Declarative Languages
The development of modern routers require a significant effort to be designed, built, and verified. While hardware routers are faster, they are difficult to configure and mantain. Software routers, on the other hand, are slower but can easily be configured and mantained. Recently, a modular architecture and software toolkit for building routers and other packet processors has been introduced: the system Click. It includes a specification language with features for declaring and connecting router elements and for designing abstractions. We propose the use of a declarative multi-paradigm language, Curry, to specify routers. Since Curry is a fully declarative language, router specifications can be transformed, optimized, verified, etc., by using a number of existing formal techniques. Moreover, we will show that the features of Curry are particularly useful to design router components with a high-level of abstraction. Our first experiments point out that the proposed methodology is both useful and practical...
Automatic Complexity Analysis by Program Transformation
There are very few approaches to measure the execution costs of lazy functional (logic) programs. The use of a lazy execution mechanism implies that the complexity of an evaluation depends on its context, i.e., the evaluation of the same expression may have different costs depending on the degree of evaluation require by the different contexts where it appears. We have develop a novel approach to complexity analysis of functional (logic) programs. We focus on the construction of equations which compute the time-complexity of expressions. In contrast to previous approaches, it is simple, precise -i.e., it computes exact costs rather than upper/lower bounds-, and fully automatic.
The PRISMA Distribution Aspect
The PRISMA architecture includes different aspects that are able to specify the whole structure and behaviour of complex systems. Here you can find the implementation of the distribution aspect.
Slicing XML Documents
Program slicing is a well-known technique to extract the program statements that (potentially) affect the values computed at some point of interest. In this work, we introduce a novel slicing method for XML documents. Essentially, given an XML document (which is valid w.r.t. some DTD), we produce a new XML document (a slice) that contains the relevant information in the original XML document according to some criterion. Furthermore, we also output a new DTD such that the computed slice is valid w.r.t. this DTD. A prototype implementation of the XML slicer has been undertaken.
Filtering HTML Documents
Nowadays, Internet is the main source of information for millions of people and enterprises. However, the information in Internet has not been classified yet and, consequently, the search for information is one of the most important tasks and processes performed by users and systems. In particular, for WWW human users the search for information is the main (time-consuming) task performed. In order to face this problem both the industrial and the academic communities have developed many methods and tools to index and search web pages. The most extended solution is the use of search engines such as Google and Yahoo; however, while current search engines can be a suitable solution to find a particular webpage, they are useless to find the relevant information in such a page. Hence, once a webpage is found, the user must search on it in order to verify if the information needed is in there. This is a problem which until now has not been satisfactorily solved and, thus, there is not an extended solution. In this project we develop a tool able to automatically extract from a webpage the information (text, images, etc.) related to a filtering criterium without the use of semantic specifications or lexicons and without the need of offline parsing or compilation processes.
Pin More Information...
A Comparative of Algorithmic Debuggers
Algorithmic debugging is a semi-automatic debugging technique which is based on the answers of an oracle (usually the programmer) to a series of questions generated automatically by the algorithmic debugger. The technique typically traverses a record of the execution---the so-called execution tree---which only captures the declarative aspects of the execution and hides operational details. In this work we overview and compare the most important algorithmic debuggers of different programming paradigms. In the study we analyze the most important features incorporated by current algorithmic debuggers, and we identify some features not supported yet by any debugger. We then compare all the debuggers giving rise to a map of the state of the practice in algorithmic debugging.
NOFIB-Buggy: The Haskell Collection of Buggy Programs
This work presents the nofib-buggy suite: a collection of benchmarks written in Haskell. The suite is an extension of the well-known \emph{nofib} suite but with the peculiarity that all the programs in the new suite are buggy. This characteristic makes the benchmarks useful to test and compare debugging methods. We describe the kind of bugs used in the suite, and how they have been distributed. It is also explained how to download, use and contribute to the nofib-buggy suite.
SOC: A Slicer of CSP Specifications
SOC is a program slicer for CSP specifications. In order to increase the precision of program slicing, SOC uses a new data structure called Context-sensitive Synchronized Control Flow Graph (CSCFG). Given a CSP specification, SOC generates its associated CSCFG and produces from it two different kinds of slices; which correspond to two different static analyses.
CSP2PN: A Tool to Transform a CSP Specification into an Equivalent Petri Net
CSP2PN is a tool that automatically builds a Petri net which produces the same sequences of observable events that a given CSP specification. In CSP terminology, these sequences are the so-called traces. In Petri nets they correspond to transition firing sequences. The transformation algorithm uses an instrumentation of the standard CSP's operational semantics as defined by A.W. Roscoe to explore all posible computations of a specification. The semantics is deterministic because the rule applied in every step is predetermined by the initial configuration. Therefore, the algorithm can execute the semantics several times to iteratively explore all computations and hence, generate the whole Petri net.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

::TECHNICAL REPORTS


Copyrights are held variously by the authors or publishers. In general, these papers are provided for direct use in scholarship and education. If you are contemplating other uses, such as republication, you must obtain appropriate permissions. If you wish to cite any of the published work, please look up the formal publication, and use that version. The preprints in this area are as accurate as I can make them, but they are not authoritative copies of the published versions.


If you cannot find a technical report, you can also try here.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

::SELECTED PAPERS


Copyrights are held variously by the authors or publishers. In general, these papers are provided for direct use in scholarship and education. If you are contemplating other uses, such as republication, you must obtain appropriate permissions. If you wish to cite any of the published work, please look up the formal publication, and use that version. The preprints in this area are as accurate as I can make them, but they are not authoritative copies of the published versions.


You can select papers by year: 2014 / 2013 / 2012 / 2011 / 2010 / 2009 / 2008 / 2007 / 2006 / 2005 / 2004 / 2003 / 2002

  • David Insa, Josep Silva,
    Automatic Transformation of Iterative Loops into Recursive Methods.
    The Journal of Information and Software Technology (JIST).
    © Elsevier
    , DOI: 10.1016/j.infsof.2014.10.001, 2014.
    Available:
    PDF preprint
  • Julian Alarte, David Insa, Josep Silva, Salvador Tamarit
    Automatic Detection of Webpages that Share the Same Web Template.
    10th International Workshop on Automated Specification and Verification of Web Systems (WWV 2014).
    Electronic Proceedings in Theoretical Computer Science
    .
    © EPTCS
    , DOI: 10.4204/EPTCS.163, 2014.
    Available:
    PDF online
  • Juan Rodriguez, Josep Silva, David Insa
    Enhancing Trace Debugging with Algorithmic and Omniscient Debugging.
    Proceedings of the 23rd International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2013).
    Available:
    PDF preprint
  • Josep Silva
    A Vocabulary of Program-Slicing Based Techniques
    ACM Computing Surveys. Volume 12, Issue 3. Article 12. 2012.
    © ACM Press

    Available:
    PDF preprint
  • Marisa Llorens, Javier Oliver, Josep Silva, Salvador Tamarit
    Generating a Petri Net from a CSP Specification: a Semantics-Based Method
    Advances in Engineering Software. Volume 50, Pages 110–130, 2012.
    © Elsevier
    Available:
    PDF preprint
  • Juan Rodriguez, Josep Silva, David Insa
    Enhancing Declarative Debugging with Loop Expansion and Tree Compression.
    Proceedings of the 22nd International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2012).
    Available:
    PDF preprint
  • Sergio López, Josep Silva, David Insa
    Content Extraction Using DOM Structures
    13th International Conference on Intelligent Text Processing and Computational Linguistics (CICLING 2012).

    Available:
    PDF preprint
  • Héctor Valero, Carlos Castillo, Josep Silva
    Information Extraction from Webpages Based on DOM Distances
    13th International Conference on Intelligent Text Processing and Computational Linguistics (CICLING 2012).

    © Springer-Verlag

    Available: PDF preprint

2011

  • Josep Silva
    A Survey on Algorithmic Debugging Strategies
    Advances in Engineering Software. Volume 42 Issue 11, November, 2011

    Available:
    PDF preprint
  • Jesús Almendros, Josep Silva, Salvador Tamarit
    XQuery Optimization Based on Program Slicing
    20th ACM Conference on Information and Knowledge Management (CIKM 2011).
    Glasgow, Scotland, UK. 24th-28th October 2011
    .
    © ACM Press
    Available:
    PDF preprint
  • David Insa, Josep Silva
    An Optimal Strategy for Algorithmic Debugging
    26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).
    Oread, Lawrence, Kansas, USA. 6th-12th November 2011.
    © ACM Press
    Available:
    PDF preprint

  • David Insa, Josep Silva
    Optimal Divide and Query
    15th Portuguese Conference on Artificial Intelligence (EPIA 2011).
    Lisbon, Portugal. 10th-13th October 2011.
    © Springer-Verlag

    Available:
    PDF Extended Version

 

  • David Insa, Josep Silva
    An Algorithmic Debugger for Java
    Proceedings of the 26th IEEE International Conference on Software Maintenance (ICSM 2010).
    © IEEE

    Available:
    PDF preprint

  • David Insa, Josep Silva
    Debugging with Incomplete and Dynamically Generated Execution Trees
    Proceedings of the 20th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2010).
    © Springer-Verlag
    Available:
    PDF preprint

  • Sergio López, Josep Silva
    A New Information Filtering Method for Webpages
    7th International Workshop on Text.based Information Retrieval (TIR 2010). Bilbao, Spain. August 30, 2010.

    Available:
    PDF preprint

  • Héctor Valero, Carlos Castillo, Josep Silva
    Reconstructing Information Retrieved from Multiple Websites
    5th International Workshop on Automated Specification and Verification of Web Systems (WWV 2010). Vienna, Austria. July 30-31, 2010.

    Available:
    PDF preprint

  • Marisa Llorens, Javier Oliver, Josep Silva, Salvador Tamarit
    An Algorithm to Detect Synchronized Events of CSP Specifications
    Proceedings of the XVII Jornadas de Concurrencia y Sistemas Distribuidos (JCSD 2009). pp. 261-272, 2009.
    Available: PDF preprint

  • Josep Silva
    Information Filtering and Information Retrieval with the Web Filtering Toolbar

    4th Int'l Workshop on Automated Specification and Verification of Web Systems (WWV 2008).
    Electronic Notes in Theoretical Computer Science, Volume 235: 125-136, 2009.
    © Elsevier

    Available:
    Abstract / PDF preprint / BibTeX entr

 

  • Josep Silva
    Debugging Techniques for Declarative Languages: Profiling, Program Slicing, and Algorithmic Debugging

    AI Communications, Volume 21(1), pp. 91-92, 2008.
    © IOS Press

    Available:
    Abstract

 

 

  • Josep Silva
    A Comparative Study of Algorithmic Debugging Strategies

    Logic-Based Program Synthesis and Transformation (revised and selected papers from LOPSTR 2006). Springer LNCS 4407, pp. 60-76, 2007.
    © Springer-Verlag
    Available:
    Online paper / PDF preprint

 

  • Josep Silva
    A program Slicing Based Method to Filter XML/DTD Documents

    International Conference on Current Trends in Theory and Practice of Informatics (SOFSEM 2007), Czech Republic. Springer LNCS 4362, pp. 771-782, 2007.
    © Springer-Verlag
    Available: Online paper
    / Information

 

 

 

 

 

 

  • Josep Silva
    Algorithmic Debugging Strategies

    International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2006). pp. 134-140.
    Available:
    Online paper

 


2004

2003


2002

 

 

  • Algorithmic Debugging
  • Program Slicing
  • Self-Healing systems
  • Tracing
Research
Google translations: Français     Español     Deutsch     Italiano     Português