VLDB 2026 Research / reviewers in the wild / expert
Miguel Gómez-Zamalloa
dblp:26/669
· DBLP profile ↗
40ranked-venue papers
4as first author
2since 2021 · last 2023
0000-0003-1557-689XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 38 · 4 first-author · 2 since 2021Theory of computation · 15Artificial intelligence and machine learning · 1Computer networks · 1Databases, data management, data science and information retrieval · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Optimal dynamic partial order reduction with context-sensitive independence and observersabstractDynamic Partial Order Reduction (DPOR) algorithms are used in stateless model checking of concurrent programs to avoid the exploration of equivalent execution sequences. In order to detect equivalence, DPOR relies on the notion of independence between execution steps. As this notion must be approximated, it can lose precision and thus treat execution steps as interfering when they are not. Our work is inspired by recent progress in the area that has introduced more accurate ways to exploit conditional notions of independence: Context-Sensitive DPOR considers two steps p and t independent in the current state if the states obtained by executing p⋅t and t⋅p are the same; Optimal DPOR with Observers makes their dependency conditional to the existence of future events that observe their operations. This article introduces a new algorithm, Optimal Context-Sensitive DPOR with Observers, that combines these two notions of conditional independence, and goes beyond them by exploiting their synergies. The implementation of our algorithm has been undertaken within the Nidhugg model checking tool. Our experimental evaluation, using benchmarks from the previous works, shows that our algorithm is able to effectively combine the benefits of both context-sensitive and observers-based independence and that it can produce exponential reductions over both of them. Elvira Albert, Maria Garcia de la Banda, Miguel Gómez-Zamalloa, Miguel Isabel, Peter J. Stuckey |
J. Syst. Softw. | 3 |
| 2021 | Actor-based model checking for Software-Defined Networks
Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel, Albert Rubio, Matteo Sammartino, Alexandra Silva 0001 |
J. Log. Algebraic Methods Program. | 2 |
| 2019 | Optimal context-sensitive dynamic partial order reduction with observersabstractDynamic Partial Order Reduction (DPOR) algorithms are used in stateless model checking to avoid the exploration of equivalent execution sequences. DPOR relies on the notion of independence between execution steps to detect equivalence. Recent progress in the area has introduced more accurate ways to detect independence: Context-Sensitive DPOR considers two steps p and t independent in the current state if the states obtained by executing p · t and t · p are the same; Optimal DPOR with Observers makes their dependency conditional to the existence of future events that observe their operations. We introduce a new algorithm, Optimal Context-Sensitive DPOR with Observers, that combines these two notions of conditional independence, and goes beyond them by exploiting their synergies. Experimental evaluation shows that our gains increase exponentially with the size of the considered inputs. Elvira Albert, Maria Garcia de la Banda, Miguel Gómez-Zamalloa, Miguel Isabel, Peter J. Stuckey |
ISSTA | 3 |
| 2018 | Constrained Dynamic Partial Order ReductionabstractThe cornerstone of dynamic partial order reduction (DPOR) is the notion of independence that is used to decide whether each pair of concurrent events p and t are in a race and thus both $$p \cdot t$$ and $$t \cdot p$$ must be explored. We present constrained dynamic partial order reduction (CDPOR), an extension of the DPOR framework which is able to avoid redundant explorations based on the notion of conditional independence—the execution of p and t commutes only when certain independence constraints (ICs) are satisfied. ICs can be declared by the programmer, but importantly, we present a novel SMT-based approach to automatically synthesize ICs in a static pre-analysis. A unique feature of our approach is that we have succeeded to exploit ICs within the state-of-the-art DPOR algorithm, achieving exponential reductions over existing implementations. Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel, Albert Rubio |
CAV (2) | 2 |
| 2018 | SDN-Actors: Modeling and Verification of SDN Programs
Elvira Albert, Miguel Gómez-Zamalloa, Albert Rubio, Matteo Sammartino, Alexandra Silva 0001 |
FM | 2 |
| 2018 | Systematic testing of actor systemsabstractSummary Testing concurrent systems requires exploring all possible nondeterministic interleavings that the concurrent execution may have, as any of the interleavings may reveal the erroneous behavior. In testing of actor systems, we can distinguish 2 sources of nondeterminism: (1)actor selection, the order in which actors are explored, and (2)task selection, the order in which the tasks within each actor are explored. This article provides new strategies and heuristics for pruning redundant state‐exploration when testing actor systems by reducing the amount of unnecessary nondeterminism of both types. Furthermore, we extend these techniques to handle synchronization primitives that allow awaiting for the completion of an asynchronous task. We report on an implementation and experimental evaluation of the proposed techniques in SYCO, a testing tool for actor‐based concurrency. Elvira Albert, Puri Arenas, Miguel Gómez-Zamalloa |
Softw. Test. Verification Reliab. | 3 |
| 2017 | Context-Sensitive Dynamic Partial Order Reduction
Elvira Albert, Puri Arenas, Maria Garcia de la Banda, Miguel Gómez-Zamalloa, Peter J. Stuckey |
CAV (1) | 4 |
| 2017 | Generation of Initial Contexts for Effective Deadlock Detection
Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel |
LOPSTR | 2 |
| 2016 | SYCO: a systematic testing tool for concurrent objectsabstractWe present the concepts, usage and prototypical implementation of SYCO: a SYstematic testing tool for Concurrent Objects. The system receives as input a program, a selection of method to be tested, and a set of initial values for its parameters. SYCO offers a visual web interface to carry out the testing process and visualize the results of the different executions as well as the sequences of tasks scheduled as a sequence diagram. Its kernel includes state-of-the-art partial-order reduction techniques to avoid redundant computations during testing. Besides, SYCO incorporates an option to effectively catch deadlock errors. In particular, it uses advanced techniques which guide the execution towards potential deadlock paths and discard paths that are guaranteed to be deadlock free. Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel |
CC | 2 |
| 2016 | Combining Static Analysis and Testing for Deadlock Detection
Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel |
IFM | 2 |
| 2016 | Testing of concurrent and imperative software using CLPabstractTesting is a vital part of the software development process. In static testing, instead of executing the program on normal values (e.g., numbers), typically the program is executed on symbolic variables representing arbitrary values. Constraints on the symbolic variables are used to represent the conditions under which the execution paths are taken. Testing tools can uncover issues such as memory leaks, buffer overflows, and also concurrency errors like deadlocks or data races. Due to its inherent symbolic execution mechanism and the availability of constraint solvers, Constraint Logic Programming (CLP) has a big potential in the field of testing. In this talk, we will describe a fully CLP-based framework to testing of a today's imperative language. We will also discuss the extension of this framework to handle actor-based concurrency, used in languages such as Go, Actor-Foundry, Erlang, and Scala, among others. Elvira Albert, Puri Arenas, Miguel Gómez-Zamalloa |
PPDP | 3 |
| 2015 | Test Case Generation of Actor Systems
Elvira Albert, Puri Arenas, Miguel Gómez-Zamalloa |
ATVA | 3 |
| 2015 | Resource Analysis: From Sequential to Concurrent and Distributed Programs
Elvira Albert, Puri Arenas, Jesús Correas Fernández, Samir Genaim, Miguel Gómez-Zamalloa, Enrique Martin-Martin, Germán Puebla, Guillermo Román-Díez |
FM | 5 |
| 2015 | Testing abstract behavioral specifications
Peter Y. H. Wong, Richard Bubel, Frank S. de Boer, Miguel Gómez-Zamalloa, Stijn de Gouw, Reiner Hähnle, Karl Meinke, Muddassar A. Sindhu |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2015 | Object-sensitive cost analysis for concurrent objectsabstractSummary This article presents a novel cost analysis framework for concurrent objects. Concurrent objects form a well‐established model for distributed concurrent systems. In this model, objects are the concurrency units that communicate among them via asynchronous method calls. Cost analysis aims at automatically approximating the resource consumption of executing a program in terms of its input parameters. While cost analysis for sequential programming languages has received considerable attention, concurrency and distribution have been notably less studied. The main challenges of cost analysis in a concurrent setting are as follows. First, inferring precise size abstractions for data in the program in the presence of shared memory. This information is essential for bounding the number of iterations of loops. Second, distribution suggests that analysis must infer the cost of the diverse distributed components separately. We handle this by means of a novel form of object‐sensitive recurrence equations that use cost centres in order to keep the resource usage assigned to the different components separate. We have implemented our analysis and evaluated it on several small applications that are classical examples of concurrent and distributed programming. Copyright © 2015 John Wiley & Sons, Ltd. Elvira Albert, Puri Arenas, Jesús Correas Fernández, Samir Genaim, Miguel Gómez-Zamalloa, Germán Puebla, Guillermo Román-Díez |
Softw. Test. Verification Reliab. | 5 |
| 2014 | Actor- and Task-Selection Strategies for Pruning Redundant State-Exploration in Testing
Elvira Albert, Puri Arenas, Miguel Gómez-Zamalloa |
FORTE | 3 |
| 2014 | SACO: Static Analyzer for Concurrent Objects
Elvira Albert, Puri Arenas, Antonio Flores-Montoya, Samir Genaim, Miguel Gómez-Zamalloa, Enrique Martin-Martin, Germán Puebla, Guillermo Román-Díez |
TACAS | 5 |
| 2014 | Selected and extended papers from Bytecode 2013
Miguel Gómez-Zamalloa, Germán Puebla |
Sci. Comput. Program. | 1 |
| 2013 | aPET: a test case generation tool for concurrent objectsabstractWe present the concepts, usage and prototypical implementation of aPET, a test case generation tool for a distributed asynchronous language based on concurrent objects. The system receives as input a program, a selection of methods to be tested, and a set of parameters that include a selection of a coverage criterion. It yields as output a set of test cases which guarantee that the selected coverage criterion is achieved. aPET is completely integrated within the language's IDE via Eclipse. The generated test cases can be displayed in textual mode and, besides, it is possible to generate ABSUnit code (i.e., code runnable in a simple framework similar to JUnit to write repeatable tests). The information yield by aPET can be relevant to spot bugs during program development and also to perform regression testing. Elvira Albert, Puri Arenas, Miguel Gómez-Zamalloa, Peter Y. H. Wong |
ESEC/SIGSOFT FSE | 3 |
| 2013 | Heap space analysis for garbage collected languages
Elvira Albert, Samir Genaim, Miguel Gómez-Zamalloa |
Sci. Comput. Program. | 3 |
| 2013 | A CLP heap solver for test case generationabstractAbstract One of the main challenges to software testing today is to efficiently handle heap-manipulating programs. These programs often build complex, dynamically allocated data structures during execution and, to ensure reliability, the testing process needs to consider all possible shapes these data structures can take. This creates scalability issues since high (often exponential) numbers of shapes may be built due to the aliasing of references. This paper presents a novel CLP heap solver for the test case generation of heap-manipulating programs that is more scalable than previous proposals, thanks to the treatment of reference aliasing by means of disjunction, and to the use of advanced back-propagation of heap related constraints. In addition, the heap solver supports the use of heap assumptions to avoid aliasing of data that, though legal, should not be provided as input. Elvira Albert, Maria Garcia de la Banda, Miguel Gómez-Zamalloa, José Miguel Rojas, Peter J. Stuckey |
Theory Pract. Log. Program. | 3 |
| 2012 | A Framework for Guided Test Case Generation in Constraint Logic Programming
José Miguel Rojas, Miguel Gómez-Zamalloa |
LOPSTR | 2 |
| 2012 | Automatic Inference of Resource Consumption Bounds
Elvira Albert, Puri Arenas, Samir Genaim, Miguel Gómez-Zamalloa, Germán Puebla |
LPAR | 4 |
| 2012 | Symbolic Execution of Concurrent Objects in CLP
Elvira Albert, Puri Arenas, Miguel Gómez-Zamalloa |
PADL | 3 |
| 2012 | COSTABS: a cost and termination analyzer for ABSabstractABS is an abstract behavioural specification language to model distributed concurrent systems. Characteristic features of ABS are that: (1) it allows abstracting from implementation details while remaining executable: a functional sub-language over abstract data types is used to specify internal, sequential computations; and (2) the imperative sub-language provides flexible concurrency and synchronization mechanisms by means of asynchronous method calls, release points in method definitions, and cooperative scheduling of method activations. This paper presents COSTABS, a COSt and Termination analyzer for ABS, which is able to prove termination and obtain resource usage bounds for both the imperative and functional fragments of programs. The resources that COSTABS can infer include termination, number of execution steps, memory consumption, number of asynchronous calls, among others. The analysis bounds provide formal guarantees that the execution of the program will never exceed the inferred amount of resources. The system can be downloaded as free software from its web site, where a repository of examples and a web interface are also provided. To the best of our knowledge, COSTABS is the first system able to perform resource analysis for a concurrent language. Elvira Albert, Puri Arenas, Samir Genaim, Miguel Gómez-Zamalloa, Germán Puebla |
PEPM | 4 |
| 2011 | Cost Analysis of Concurrent OO Programs
Elvira Albert, Puri Arenas, Samir Genaim, Miguel Gómez-Zamalloa, Germán Puebla |
APLAS | 4 |
| 2011 | Simulating Concurrent Behaviors with Worst-Case Cost Bounds
Elvira Albert, Samir Genaim, Miguel Gómez-Zamalloa, Einar Broch Johnsen, Rudolf Schlatte, Silvia Lizeth Tapia Tarifa |
FM | 3 |
| 2011 | Resource-Driven CLP-Based Test Case Generation
Elvira Albert, Miguel Gómez-Zamalloa, José Miguel Rojas |
LOPSTR | 2 |
| 2010 | Parametric inference of memory requirements for garbage collected languagesabstractThe accurate prediction of program's memory requirements is a critical component in software development. Existing heap space analyses either do not take deallocation into account or adopt specific models of garbage collectors which do not necessarily correspond to the actual memory usage. We present a novel approach to inferring upper bounds on memory requirements of Java-like programs which is parametric on the notion of object lifetime, i.e., on when objects become collectible. If objects lifetimes are inferred by a reachability analysis, then our analysis infers accurate upper bounds on the memory consumption for a reachability-based garbage collector. Interestingly, if objects lifetimes are inferred by a heap liveness analysis, then we approximate the program minimal memory requirement, i.e., the peak memory usage when using an optimal garbage collector which frees objects as soon as they become dead. The key idea is to integrate information on objects lifetimes into the process of generating the recurrence equations which capture the memory usage at the different program states. If the heap size limit is set to the memory requirement inferred by our analysis, it is ensured that execution will not exceed the memory limit with the only assumption that garbage collection works when the limit is reached. Experiments on Java bytecode programs provide evidence of the feasibility and accuracy of our analysis. Elvira Albert, Samir Genaim, Miguel Gómez-Zamalloa |
ISMM | 3 |
| 2010 | Compositional CLP-Based Test Data Generation for Imperative Languages
Elvira Albert, Miguel Gómez-Zamalloa, José Miguel Rojas, Germán Puebla |
LOPSTR | 2 |
| 2010 | PET: a partial evaluation-based test case generation tool for Java bytecodeabstractPET is a prototype Partial Evaluation-based Test case generation tool for a subset of Java bytecode programs. It performs white-box test generation by means of two consecutive Partial Evaluations (PE). The first PE decompiles the Java bytecode program into an equivalent CLP (Constraint Logic Programming) counterpart. The second PE generates a test-case generator from the CLP program. This generator captures interesting test coverage criteria and it is able to generate further test cases on demand. For the first PE, PET incorporates an existing tool which decompiles bytecode to CLP. The main contribution of this work is the implementation of the second PE and the proof of concept of the approach. This has required the development of a partial evaluator for CLP with appropriate control strategies to ensure the required coverage criteria and to generate test-case generators. PET can be downloaded as free software from its web site, where a repository of examples and a web interface are also provided. Though PET has to be extended to be applicable to larger programs, we argue that it provides some evidence that the approach can be of practical interest. Elvira Albert, Miguel Gómez-Zamalloa, Germán Puebla |
PEPM | 2 |
| 2010 | Test case generation for object-oriented imperative languages in CLPabstractAbstract Testing is a vital part of the software development process. Test Case Generation (TCG) is the process of automatically generating a collection of test-cases which are applied to a system under test. White-box TCG is usually performed by means of symbolic execution, i.e., instead of executing the program on normal values (e.g., numbers), the program is executed on symbolic values representing arbitrary values. When dealing with an object-oriented (OO) imperative language, symbolic execution becomes challenging as, among other things, it must be able to backtrack, complex heap-allocated data structures should be created during the TCG process and features like inheritance, virtual invocations and exceptions have to be taken into account. Due to its inherent symbolic execution mechanism, we pursue in this paper that Constraint Logic Programming (CLP) has a promising application field in tcg. We will support our claim by developing a fully CLP-based framework to TCG of an OO imperative language, and by assessing it on a corresponding implementation on a set of challenging Java programs. Miguel Gómez-Zamalloa, Elvira Albert, Germán Puebla |
Theory Pract. Log. Program. | 1 |
| 2009 | Live heap space analysis for languages with garbage collectionabstractThe peak heap consumption of a program is the maximum size of the live data on the heap during the execution of the program, i.e., the minimum amount of heap space needed to run the program without exhausting the memory. It is well-known that garbage collection (GC) makes the problem of predicting the memory required to run a program difficult. This paper presents, the best of our knowledge, the first live heap space analysis for garbage-collected languages which infers accurate upper bounds on the peak heap usage of a program's execution that are not restricted to any complexity class, i.e., we can infer exponential, logarithmic, polynomial, etc., bounds. Our analysis is developed for an (sequential) object-oriented bytecode language with a scoped-memory manager that reclaims unreachable memory when methods return. We also show how our analysis can accommodate other GC schemes which are closer to the ideal GC which collects objects as soon as they become unreachable. The practicality of our approach is experimentally evaluated on a prototype implementation. We demonstrate that it is fully automatic, reasonably accurate and efficient by inferring live heap space bounds for a standardized set of benchmarks, the JOlden suite. Elvira Albert, Samir Genaim, Miguel Gómez-Zamalloa |
ISMM | 3 |
| 2009 | Decompilation of Java bytecode to Prolog by partial evaluation
Miguel Gómez-Zamalloa, Elvira Albert, Germán Puebla |
Inf. Softw. Technol. | 1 |
| 2009 | Type-based homeomorphic embedding for online termination
Elvira Albert, John P. Gallagher, Miguel Gómez-Zamalloa, Germán Puebla |
Inf. Process. Lett. | 3 |
| 2008 | Test Data Generation of Bytecode by CLP Partial Evaluation
Elvira Albert, Miguel Gómez-Zamalloa, Germán Puebla |
LOPSTR | 2 |
| 2008 | Modular Decompilation of Low-Level Code by Partial EvaluationabstractDecompiling low-level code to a high-level intermediate representation facilitates the development of analyzers, model checkers, etc. which reason about properties of the low-level code (e.g., bytecode, .NET). Interpretive decompilation consists in partially evaluating an interpreter for the low-level language (written in the high-level language) w.r.t. the code to be decompiled. There have been proofs-of-concept that interpretive decompilation is feasible, butt here remain important open issues when it comes to decompile a real language: does the approach scale up? is the quality of decompiled programs comparable to that obtained by ad-hoc decompilers? do decompiled programs preserve the structure of the original programs? This paper addresses these issues by presenting, to the best of our knowledge, the first modular scheme to enable interpretive decompilation of low-level code to a high-level representation, namely, we decompile bytecode into Prolog. We introduce two notions of optimality. The first one requires that each method/block is decompiled just once. The second one requires that each program point is traversed at most once during decompilation. We demonstrate the impact of our modular approach and optimality issues on a series of realistic benchmarks. Decompilation times and decompiled program sizes are linear with the size of the input bytecode program. This demostrates empirically the scalability of modular decompilation of low-level code by partial evaluation. Miguel Gómez-Zamalloa, Elvira Albert, Germán Puebla |
SCAM | 1 |
| 2007 | Heap space analysis for java bytecodeabstractThis article presents a heap space analysis for (sequential) Java bytecode. The analysis generates heap space cost relations which define at compile-time the heap consumption of a program as a function of its data size. These relations can be used to obtain upper bounds on the heap space located during the execution of the different methods. In addition, we describe how to refine the cost relations, by relying on escape analysis, in order to take into account the heap space that can be safely deallocated by the garbage collector upon exit from a corresponding method. These refined cost relations are then used to infer upper bounds on the active heap space upon methods return. Example applications for the analysis consider inference of constant heap usage and heap usage proportional to the data size (including polynomial and exponential heap consumption). Our prototype implementation is reported and demonstrated by means of a series of examples which illustrate how the analysis naturally encompasses standard data-structures like lists, trees and arrays with several dimensions written in object-oriented programming style. Elvira Albert, Samir Genaim, Miguel Gómez-Zamalloa |
ISMM | 3 |
| 2007 | Type-Based Homeomorphic Embedding and Its Applications to Online Partial Evaluation
Elvira Albert, John P. Gallagher, Miguel Gómez-Zamalloa, Germán Puebla |
LOPSTR | 3 |
| 2007 | Verification of Java Bytecode Using Analysis and Transformation of Logic Programs
Elvira Albert, Miguel Gómez-Zamalloa, Laurent Hubert, Germán Puebla |
PADL | 2 |