Network


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

Hotspot


Dive into the research topics where Adrián Riesco is active.

Publication


Featured researches published by Adrián Riesco.


workshop on recent trends in algebraic development techniques | 2009

Declarative Debugging of Rewriting Logic Specifications

Adrián Riesco; Alberto Verdejo; Rafael Caballero; Narciso Martí-Oliet

Declarative debugging is a semi-automatic technique that starts from an incorrect computation and locates a program fragment responsible for the error by building a tree representing this computation and guiding the user through it to find the wrong statement. This paper presents the fundamentals for the declarative debugging of rewriting logic specifications, realized in the Maude language, where a wrong computation can be a reduction, a type inference, or a rewrite. We define appropriate debugging trees obtained as the result of collapsing in proof trees all those nodes whose correctness does not need any justification. Since these trees are obtained from a suitable semantic calculus, the correctness and completeness of the debugging technique can be formally proved. We illustrate how to use the debugger by means of an example and succinctly describe its implementation in Maude itself thanks to its reflective and metalanguage features.


The Journal of Logic and Algebraic Programming | 2012

Declarative debugging of rewriting logic specifications

Adrián Riesco; Alberto Verdejo; Narciso Martí-Oliet; Rafael Caballero

Abstract Declarative debugging is a semi-automatic technique that starts from an incorrect computation and locates a program fragment responsible for the error by building a tree representing this computation and guiding the user through it to find the error. Membership equational logic ( MEL ) is an equational logic that in addition to equations allows one to state membership axioms characterizing the elements of a sort. Rewriting logic is a logic of change that extends MEL by adding rewrite rules, which correspond to transitions between states and can be nondeterministic. We propose here a calculus to infer reductions, sort inferences, normal forms, and least sorts with the equational subset of rewriting logic, and rewrites and sets of reachable terms through rules. We use an abbreviation of the proof trees computed with this calculus to build appropriate debugging trees for both wrong (an incorrect result obtained from an initial result) and missing answers (results that are erroneous because they are incomplete), whose adequacy for debugging is proved. Using these trees we have implemented Maude DDebugger, a declarative debugger for Maude, a high-performance system based on rewriting logic. We illustrate its use with an example.


Electronic Notes in Theoretical Computer Science | 2009

Implementing and analyzing in Maude the Enhanced Interior Gateway Routing Protocol

Adrián Riesco; Alberto Verdejo

The Enhanced Interior Gateway Routing Protocol (EIGRP) is an advanced distance-vector routing protocol, with optimizations to minimize both the routing instability incurred after topology changes, as well as the use of bandwidth and processing power in the router. This paper presents an executable specification using the rewriting logic based language Maude, that allows to connect several running instances of the protocol and on top of which concrete applications can be executed. The protocol is also modeled in Real-Time Maude, which allows to formally analyze it in several ways.


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.


workshop on recent trends in algebraic development techniques | 2012

A Generic Program Slicing Technique Based on Language Definitions

Adrián Riesco; Irina Măriuca Asăvoae; Mihail Asăvoae

A formal executable semantics of a programming language has the necessary information to develop program debugging and reasoning techniques. In this paper we choose such a particular technique called program slicing and we introduce a generic algorithm which extracts a set of side-effects inducing constructs, directly from the formal executable semantics of a programming language. These constructs are further used to infer program slices, for given programs and specified slicing criteria. Our proposed approach improves on the parametrization of the language tools development because changes in the formal semantics are automatically carried out in the slicing procedure. We use the rewriting logic and the Maude system to implement a prototype and to test our technique.


algebraic methodology and software technology | 2010

A complete declarative debugger for Maude

Adrián Riesco; Alberto Verdejo; Narciso Martí-Oliet

We present a declarative debugger for Maude specifications that allows to debug wrong answers (a wrong result is obtained) and missing answers (a correct but incomplete result is obtained) due to both wrong and missing statements and wrong search conditions. The debugger builds a tree representing the computation and guides the user through it to find the bug. We present the debuggers latest commands and features, illustrating its use with several examples.


Electronic Notes in Theoretical Computer Science | 2007

A Distributed Implementation of Mobile Maude

Francisco Durán; Adrián Riesco; Alberto Verdejo

We present a new specification/implementation of the mobile agent language Mobile Maude. This new version uses the external sockets provided by Maude since its 2.2 version, thus obtaining a really distributed implementation of the mobile language, where messages and mobile objects now may travel from one machine to another one in a transparent way. We also show how, even though the complexity of the Mobile Maude specification and the use of reflection, we have managed to use the Maudes model checker to prove properties about mobile agents applications.


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.


workshop on rewriting logic and its applications | 2010

Enhancing the debugging of Maude specifications

Adrián Riesco; Alberto Verdejo; Narciso Martí-Oliet

Declarative debugging is a semi-automatic technique that locates a program fragment responsible for the error by building a tree representing the computation and guiding the user through it to find the error. Two different kinds of errors are considered for debugging: wrong answers--a wrong result obtained from an initial value--and missing answers--a term that should be reachable but cannot be obtained from an initial value--, where the latter has only been considered in nondeterministic systems. However, we consider that missing answers can also appear in deterministic systems, when we obtain correct results that do not provide all the expected information, which corresponds, in the context of Maude modules, to terms whose normal form is not reached and to terms whose computed least sort is, although correct, bigger than the expected one. We present in this paper a calculus to deduce normal forms and least sorts, and a proper abbreviation of the trees obtained with it. These trees increase both the causes (missing equations and memberships) and the errors (erroneous normal forms and least sorts) detected in our debugging framework.


rewriting techniques and applications | 2010

Declarative Debugging of Missing Answers for Maude

Adrián Riesco; Alberto Verdejo; Narciso Martí-Oliet

Declarative debugging is a semi-automatic technique that starts from an incorrect computation and locates a program fragment responsible for the error by building a tree representing this computation and guiding the user through it to find the error. Membership equational logic (MEL) is an equational logic that in addition to equations allows the statement of membership axioms characterizing the elements of a sort. Rewriting logic is a logic of change that extends MEL by adding rewrite rules, that correspond to transitions between states and can be nondeterministic. In this paper we propose a calculus that allows to infer normal forms and least sorts with the equational part, and sets of reachable terms through rules. We use an abbreviation of the proof trees computed with this calculus to build appropriate debugging trees for missing answers (results that are erroneous because they are incomplete), whose adequacy for debugging is proved. Using these trees we have implemented a declarative debugger for Maude, a high-performance system based on rewriting logic, whose use is illustrated with an example.

Collaboration


Dive into the Adrián Riesco's collaboration.

Top Co-Authors

Avatar

Alberto Verdejo

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Rafael Caballero

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Narciso Martí-Oliet

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Enrique Martin-Martin

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Juan Rodríguez-Hortalá

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar

Salvador Tamarit

Polytechnic University of Valencia

View shared research outputs
Top Co-Authors

Avatar

Kazuhiro Ogata

Japan Advanced Institute of Science and Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Irina Măriuca Asăvoae

Alexandru Ioan Cuza University

View shared research outputs
Top Co-Authors

Avatar

Mihail Asăvoae

Alexandru Ioan Cuza University

View shared research outputs
Researchain Logo
Decentralizing Knowledge