Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Salvador Tamarit is active.

Publication


Featured researches published by Salvador Tamarit.


Electronic Notes in Theoretical Computer Science | 2008

Dynamic Slicing Techniques for Petri Nets

Marisa Llorens; Javier Oliver; Josep Silva; Salvador Tamarit; Germán Vidal

Petri nets provide a means for modelling and verifying the behavior of concurrent systems. Program slicing is a well-known technique in imperative programming for extracting those statements of a program that may affect a given program point. In the context of Petri nets, computing a net slice can be seen as a graph reachability problem. In this paper, we propose two slicing techniques for Petri nets that can be useful to reduce the size of the considered net, thereby simplifying subsequent analysis and debugging tasks by standard Petri net techniques.


logic-based program synthesis and transformation | 2009

The MEB and CEB Static Analysis for CSP Specifications

Michael Leuschel; Marisa Llorens; Javier Oliver; Josep Silva; Salvador Tamarit

This work presents a static analysis technique based on program slicing for CSP specifications. Given a particular event in a CSP specification, our technique allows us to know what parts of the specification must necessarily be executed before this event, and what parts of the specification could be executed before it in some execution. Our technique is based on a new data structure which extends the Synchronized Control Flow Graph (SCFG). We show that this new data structure improves the SCFG by taking into account the context in which processes are called and, thus, makes the slicing process more precise.


The Journal of Logic and Algebraic Programming | 2013

Using the words/leafs ratio in the DOM tree for content extraction

David Insa; Josep Silva; Salvador Tamarit

This work has been partially supported by the Spanish Ministerio de Economia y Competitividad (Secretaria de Estado de Investigacion, Desarrollo e Innovacion) under Grant TIN2008-06622-C03-02 and by the Generalitat Valenciana under Grant PROMETEO/2011/052. Salvador Tamarit was partially supported by the Spanish MICINN under FPI Grant BES-2009-015019. David Insa was partially supported by the Spanish Ministerio de Eduacion under FPU Grant AP2010-4415.


tests and proofs | 2013

A Declarative Debugger for Sequential Erlang Programs

Rafael Caballero; Enrique Martin-Martin; Adrián Riesco; Salvador Tamarit

Declarative debuggers are semi-automatic debugging tools that abstract the execution details to focus on the program semantics. Erroneous computations are represented by suitable trees, which are traversed by asking questions to the user until a bug is found. This paper applies declarative debugging to the sequential subset of the language Erlang. The debugger takes the intermediate representation generated by Erlang systems, known as Core Erlang, and an initial error detected by the user, and locates an erroneous program function responsible for the error. In order to represent the erroneous computation, a semantic calculus for sequential Core Erlang programs is proposed. The debugger uses an abbreviation of the proof trees of this calculus as debugging trees, which allows us to prove the soundness of the approach. The technique has been implemented in a debugger tool publicly available.


partial evaluation and semantic-based program manipulation | 2013

Precise explanation of success typing errors

Konstantinos F. Sagonas; Josep Silva; Salvador Tamarit

Nowadays, many dynamic languages come with (some sort of) type inference in order to detect type errors statically. Often, in order not to unnecessarily reject programs which are allowed under a dynamic type discipline, their type inference algorithms are based on non-standard (i.e., not unification based) type inference algorithms. Instead, they employ aggressive forwards and backwards propagation of subtype constraints. Although such analyses are effective in locating actual programming errors, the errors they report are often extremely difficult for programmers to follow and convince themselves of their validity. We have observed this phenomenon in the context of Erlang: for a number of years now its implementation comes with a static analysis tool called Dialyzer which, among other software discrepancies, detects definite type errors (i.e., code points that will result in a runtime error if executed) by inferring success typings. In this work, we extend the analysis that infers success typings, with infrastructure that maintains additional information that can be used to provide precise (i.e., minimal) explanations about the cause of a discrepancy reported by Dialyzer using program slicing. We have implemented the techniques we describe in a publicly available development branch of Dialyzer.


tools and algorithms for construction and analysis of systems | 2014

EDD: A Declarative Debugger for Sequential Erlang Programs

Rafael Caballero; Enrique Martin-Martin; Adrián Riesco; Salvador Tamarit

Declarative debuggers are semi-automatic debugging tools that abstract the execution details to focus on the program semantics. This paper presents a tool implementing this approach for the sequential subset of Erlang, a functional language with dynamic typing and strict evaluation. Given an erroneous computation, it first detects an erroneous function (either a “named” function or a lambda-abstraction), and then continues the process to identify the fragment of the function responsible for the error. Among its features it includes support for exceptions, predefined and built-in functions, higher-order functions, and trusting and undo commands.


partial evaluation and semantic-based program manipulation | 2009

SOC: a slicer for CSP specifications

Michael Leuschel; Marisa Llorens; Javier Oliver; Josep Silva; Salvador Tamarit

This paper describes SOC, 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. We present the tools architecture, its main applications and the results obtained from experiments conducted in order to measure the performance of the tool.


fundamental approaches to software engineering | 2012

System dependence graphs in sequential erlang

Josep Silva; Salvador Tamarit; César Quijada Tomás

The system dependence graph (SDG) is a data structure used in the imperative paradigm for different static analysis, and particularly, for program slicing. Program slicing allows us to determine the part of a program (called slice) that influences a given variable of interest. Thanks to the SDG, we can produce precise slices for interprocedural programs. Unfortunately, the SDG cannot be used in the functional paradigm due to important features that are not considered in this formalism (e.g., pattern matching, higher-order, composite expressions, etc.). In this work we propose the first adaptation of the SDG to a functional language facing these problems. We take Erlang as the host language and we adapt the algorithms used to slice the SDG to produce precise slices of Erlang interprocedural programs. As a proof-of-concept, we have implemented a program slicer for Erlang based on our SDGs.


Science of Computer Programming | 2015

A zoom-declarative debugger for sequential Erlang programs

Rafael Caballero; Enrique Martin-Martin; Adrián Riesco; Salvador Tamarit

We present a declarative debugger for sequential Erlang programs. The tool is started when a program produces some unexpected result, and proceeds asking questions to the user about the correctness of some subcomputations until an erroneous program function is found. Then, the user can refine the granularity by zooming in the function, checking the values bound to variables and the if/case/try-catch branches taken during the execution. We show by means of an extensive benchmark that the result is a usable, scalable tool that complements already existing debugging tools such as the Erlang tracer and Dialyzer. Since the technique is based on a formal calculus, we are able to prove the soundness and completeness of the approach. Present a declarative approach for debugging the sequential part of Erlang.Provide debugging granularity: it can find erroneous functions and bugs in functions code.Develop a tool and test it with real Erlang programs, obtaining promising usability results.Introduce a formalized natural semantics for sequential Core Erlang.


Advances in Engineering Software | 2012

Generating a Petri net from a CSP specification: A semantics-based method

Marisa Llorens; Javier Oliver; Josep Silva; Salvador Tamarit

The specification and simulation of complex concurrent systems is a difficult task due to the intricate combinations of message passing and synchronizations that can occur between the components of the system. Two of the most extended formalisms used to specify, verify and simulate such kind of systems are CSP and the Petri nets. This work introduces a new technique that allows us to automatically transform a CSP specification into an equivalent Petri net. The transformation is formally defined by instrumenting the operational semantics of CSP. Because the technique uses a semantics-directed transformation, it produces Petri nets that are closer to the CSP specification and thus easier to understand. This result is interesting because it allows CSP developers not only to graphically animate their specifications through the use of the equivalent Petri net, but it also allows them to use all the tools and analysis techniques developed for Petri nets.

Collaboration


Dive into the Salvador Tamarit's collaboration.

Top Co-Authors

Avatar

Josep Silva

Polytechnic University of Valencia

View shared research outputs
Top Co-Authors

Avatar

Javier Oliver

Polytechnic University of Catalonia

View shared research outputs
Top Co-Authors

Avatar

Marisa Llorens

Polytechnic University of Valencia

View shared research outputs
Top Co-Authors

Avatar

David Insa

Polytechnic University of Valencia

View shared research outputs
Top Co-Authors

Avatar

Germán Vidal

Polytechnic University of Valencia

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Julio Mariño

Technical University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Julián Alarte

Polytechnic University of Valencia

View shared research outputs
Top Co-Authors

Avatar

Adrián Riesco

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Enrique Martin-Martin

Complutense University of Madrid

View shared research outputs
Researchain Logo
Decentralizing Knowledge