VLDB 2026 Research / reviewers in the wild / expert
Manuel Carro
dblp:72/789
· DBLP profile ↗
58ranked-venue papers
6as first author
3since 2021 · last 2022
0000-0001-5199-3135ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 53 · 4 first-author · 3 since 2021Theory of computation · 15 · 2 first-authorSystems, architecture and hardware · 3 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 1Human-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Towards Dynamic Consistency Checking in Goal-Directed Predicate Answer Set Programming
Joaquín Arias, Manuel Carro, Gopal Gupta 0001 |
PADL | 2 |
| 2022 | Modeling and Reasoning in Event Calculus using Goal-Directed Constraint Answer Set ProgrammingabstractAbstract Automated commonsense reasoning (CR) is essential for building human-like AI systems featuring, for example, explainable AI. Event calculus (EC) is a family of formalisms that model CR with a sound, logical basis. Previous attempts to mechanize reasoning using EC faced difficulties in the treatment of the continuous change in dense domains (e.g. time and other physical quantities), constraints among variables, default negation, and the uniform application of different inference methods, among others. We propose the use of s(CASP), a query-driven, top-down execution model for Predicate Answer Set Programming with Constraints, to model and reason using EC. We show how EC scenarios can be naturally and directly encoded in s(CASP) and how it enables deductive and abductive reasoning tasks in domains featuring constraints involving both dense time and dense fluents. Joaquín Arias, Manuel Carro, Zhuo Chen 0017, Gopal Gupta 0001 |
Theory Pract. Log. Program. | 2 |
| 2022 | Building Information Modeling Using Constraint Logic ProgrammingabstractAbstract Building Information Modeling (BIM) produces three-dimensional object-oriented models of buildings combining the geometrical information with a wide range of properties about materials, products, safety, to name just a few. BIM is slowly but inevitably revolutionizing the architecture, engineering, and construction industry. Buildings need to be compliant with regulations about stability, safety, and environmental impact. Manual compliance checking is tedious and error-prone, and amending flaws discovered only at construction time causes huge additional costs and delays. Several tools can check BIM models for conformance with rules/guidelines. For example, Singapore’s CORENET e-Submission System checks fire safety. But since the current BIM exchange format only contains basic information about building objects, a separate, ad-hoc model pre-processing is required to determine, for example, evacuation routes. Moreover, they face difficulties in adapting existing built-in rules and/or adding new ones (to cater for building regulations, that can vary not only among countries but also among parts of the same city), if at all possible. We propose the use of logic-based executable formalisms (CLP and Constraint ASP) to couple BIM models with advanced knowledge representation and reasoning capabilities. Previous experience shows that such formalisms can be used to uniformly capture and reason with knowledge (including ambiguity) in a large variety of domains. Additionally, incorporating checking within design tools makes it possible to ensure that models are rule-compliant at every step. This also prevents erroneous designs from having to be (partially) redone, which is also costly and burdensome. To validate our proposal, we implemented a preliminary reasoner under CLP(Q/R) and ASP with constraints and evaluated it with several BIM models. Joaquín Arias, Seppo Törmä, Manuel Carro, Gopal Gupta 0001 |
Theory Pract. Log. Program. | 3 |
| 2019 | Modeling and Reasoning in Event Calculus Using Goal-Directed Constraint Answer Set Programming
Joaquín Arias, Zhuo Chen 0017, Manuel Carro, Gopal Gupta 0001 |
LOPSTR | 3 |
| 2019 | Incremental Evaluation of Lattice-Based Aggregates in Logic Programming Using Modular TCLP
Joaquín Arias, Manuel Carro |
PADL | 2 |
| 2019 | Description, Implementation, and Evaluation of a Generic Design for Tabled CLPabstractAbstract Logic programming with tabling and constraints (TCLP, tabled constraint logic programming) has been shown to be more expressive and in some cases more efficient than LP, CLP, or LP + tabling. Previous designs of TCLP systems did not fully use entailment to determine call/answer subsumption and did not provide a simple and well-documented interface to facilitate the integration of constraint solvers in existing tabling systems. We study the role of projection and entailment in the termination, soundness, and completeness of TCLP systems and present the design and an experimental evaluation of Mod TCLP, a framework that eases the integration of additional constraint solvers. Mod TCLP views constraint solvers as clients of the tabling system, which is generic w.r.t. the solver and only requires a clear interface from the latter. We validate our design by integrating four constraint solvers: a previously existing constraint solver for difference constraints, written in C; the standard versions of Holzbaur’s and , written in Prolog; and a new constraint solver for equations over finite lattices. We evaluate the performance of our framework in several benchmarks using the aforementioned solvers. Mod TCLP is developed in Ciao Prolog, a robust, mature, next-generation Prolog system. Joaquín Arias, Manuel Carro |
Theory Pract. Log. Program. | 2 |
| 2019 | Evaluation of the Implementation of an Abstract Interpretation Algorithm using Tabled CLP
Joaquín Arias, Manuel Carro |
Theory Pract. Log. Program. | 2 |
| 2018 | Constraint Answer Set Programming without GroundingabstractAbstract Extending ASP with constraints (CASP) enhances its expressiveness and performance. This extension is not straightforward as the grounding phase, present in most ASP systems, removes variables and the links among them, and also causes a combinatorial explosion in the size of the program. Several methods to overcome this issue have been devised: restricting the constraint domains (e.g., discrete instead of dense), or the type (or number) of models that can be returned. In this paper we propose to incorporate constraints into s(ASP), a goal-directed, top-down execution model which implements ASP while retaining logical variables both during execution and in the answer sets. The resulting model, s(CASP), can constrain variables that, as in CLP, are kept during the execution and in the answer sets. s(CASP) inherits and generalizes the execution model of s(ASP) and is parametric w.r.t. the constraint solver. We describe this novel execution model and show through several examples the enhanced expressiveness of s(CASP) w.r.t. ASP, CLP, and other CASP systems. We also report improved performance w.r.t. other very mature, highly optimized ASP systems in some benchmarks. Joaquín Arias, Manuel Carro, Elmer Salazar, Kyle Marple, Gopal Gupta 0001 |
Theory Pract. Log. Program. | 2 |
| 2016 | Program transformations in the POLCA project
Jan Kuper, Lutz Schubert, Kilian Kempf, Colin W. Glass, Daniel Rubio Bonilla, Manuel Carro |
DATE | 6 |
| 2016 | Description and evaluation of a generic design to integrate CLP and tabled executionabstractLogic programming systems with tabling and constraints (TCLP, tabled constraint logic programming) have been shown to be more expressive and in some cases more efficient than those featuring only either tabling or constraints. Previous implementations of TCLP systems which use entailment to determine call / answer subsumption did not provide a simple, uniform, and well-documented interface to facilitate the integration of additional constraint solvers in existing tabling systems, which would increase the application range of TCLP. We present the design and an experimental evaluation of Mod TCLP, a framework which eases this integration. Mod TCLP views the constraints solver as a client of the tabling system. The tabling system is generic w.r.t. the constraint solver and only requires a clear, small interface from the latter. We validate our design by integrating four constraint solvers: a re-engineered version of a previously existing constraint solver for difference constraints, written in C; the standard versions of Holzbauer's CLP(Q) and CLP(R), written in Prolog; and a new constraint solver for equations over finite lattices. We evaluate the performance of our framework in several benchmarks using the aforementioned constraint solvers. All the development work and evaluation was done in Ciao Prolog. Joaquín Arias, Manuel Carro |
PPDP | 2 |
| 2016 | Introduction to the 32nd International Conference on Logic Programming Special IssueabstractThe main track of the Thirty Second International Conference on Logic Programming (ICLP) took place in New York City, USA, from the 18th to the 21st October 2016. It seems fitting to hold a significant, power of two, ICLP in New York because the city has a long and distinguished association with logic programming: XSB was developed at Stony Brook, as was HiLog before that, and SB-Prolog before that. Moreover, Picat was developed at the City University of New York, as was B-Prolog, and other logic programming-based systems, such as Ergo. New York has also been (and is) the cradle of several start-ups based on logic programming. Manuel Carro, Andy King |
Theory Pract. Log. Program. | 1 |
| 2016 | Description and Optimization of Abstract Machines in a Dialect of PrologabstractAbstract In order to achieve competitive performance, abstract machines for Prolog and related languages end up being large and intricate, and incorporate sophisticated optimizations, both at the design and at the implementation levels. At the same time, efficiency considerations make it necessary to use low-level languages in their implementation. This makes them laborious to code, optimize, and, especially, maintain and extend. Writing the abstract machine (and ancillary code) in a higher-level language can help tame this inherent complexity. We show how the semantics of most basic components of an efficient virtual machine for Prolog can be described using (a variant of) Prolog. These descriptions are then compiled to C and assembled to build a complete bytecode emulator. Thanks to the high-level of the language used and its closeness to Prolog, the abstract machine description can be manipulated using standard Prolog compilation and optimization techniques with relative ease. We also show how, by applying program transformations selectively, we obtain abstract machine implementations whose performance can match and even exceed that of state-of-the-art, highly-tuned, hand-crafted emulators. José F. Morales 0001, Manuel Carro, Manuel V. Hermenegildo |
Theory Pract. Log. Program. | 2 |
| 2015 | A Haskell Implementation of a Rule-Based Program Transformation for C Programs
Salvador Tamarit, Guillermo Vigueras, Manuel Carro, Julio Mariño-Carballo |
PADL | 3 |
| 2015 | Comparing and Combining Predictive Business Process Monitoring TechniquesabstractPredictive business process monitoring aims at forecasting potential problems during process execution before they occur so that these problems can be handled proactively. Several predictive monitoring techniques have been proposed in the past. However, so far those prediction techniques have been assessed only independently from each other, making it hard to reliably compare their applicability and accuracy. We empirically analyze and compare three main classes of predictive monitoring techniques, which are based on machine learning, constraint satisfaction, and Quality-of-Service (QoS) aggregation. Based on empirical evidence from an industrial case study in the area of transport and logistics, we assess those techniques with respect to five accuracy indicators. We further determine the dependency of accuracy on the point in time during process execution when a prediction is made in order to determine lead-times for accurate predictions. Our evidence suggests that, given a lead-time of half of the process duration, all predictive monitoring techniques consistently provide an accuracy of at least 70%. Yet, it also becomes evident that the techniques differ in terms of how accurately they may predict violations and nonviolations. To improve the prediction process, we thus exploit the characteristics of the individual techniques and propose their combination. Based on our case study data, evidence indicates that certain combinations of techniques may outperform individual techniques with respect to specific accuracy indicators. Combining constraint satisfaction with QoS aggregation, for instance, improves precision by 14%; combining machine learning with constraint satisfaction shows an improvement in recall by 23%. Andreas Metzger, Philipp Leitner 0001, Dragan Ivanovic, Eric Schmieders, Rod Franklin, Manuel Carro, Schahram Dustdar, Klaus Pohl |
IEEE Trans. Syst. Man Cybern. Syst. | 6 |
| 2014 | Transforming Service Compositions into Cloud-Friendly Actor Networks
Dragan Ivanovic, Manuel Carro |
ICSOC | 2 |
| 2014 | Towards QoS Prediction Based on Composition Structure Analysis and Probabilistic Models
Dragan Ivanovic, Manuel Carro, Peerachai Kaowichakorn |
ICSOC | 2 |
| 2013 | Reversible Language Extensions and Their Application in Debugging
Zoé Drey, José F. Morales 0001, Manuel V. Hermenegildo, Manuel Carro |
PADL | 4 |
| 2013 | Supporting Pruning in Tabled LP
Pablo Chico de Guzmán, Manuel Carro, Manuel V. Hermenegildo |
PADL | 2 |
| 2013 | A model-driven approach to teaching concurrencyabstractWe present an undergraduate course on concurrent programming where formal models are used in different stages of the learning process. The main practical difference with other approaches lies in the fact that the ability to develop correct concurrent software relies on a systematic transformation of formal models of inter-process interaction (so called shared resources ), rather than on the specific constructs of some programming language. Using a resource-centric rather than a language-centric approach has some benefits for both teachers and students. Besides the obvious advantage of being independent of the programming language, the models help in the early validation of concurrent software design, provide students and teachers with a lingua franca that greatly simplifies communication at the classroom and during supervision, and help in the automatic generation of tests for the practical assignments. This method has been in use, with slight variations, for some 15 years, surviving changes in the programming language and course length. In this article, we describe the components and structure of the current incarnation of the course—which uses Java as target language—and some tools used to support our method. We provide a detailed description of the different outcomes that the model-driven approach delivers (validation of the initial design, automatic generation of tests, and mechanical generation of code) from a teaching perspective. A critical discussion on the perceived advantages and risks of our approach follows, including some proposals on how these risks can be minimized. We include a statistical analysis to show that our method has a positive impact in the student ability to understand concurrency and to generate correct code. Manuel Carro, Ángel Herranz-Nieva, Julio Mariño-Carballo |
ACM Trans. Comput. Educ. | 1 |
| 2012 | Deriving Specifications for Composite Web ServicesabstractWe address the problem of synthesizing specifications for composite Web services, starting from those of their component services. Unlike related work in programming languages, we assume the definition of the component services (i.e. their code) to be unavailable - at best, they are known by a specification which (safely) approximates their functional behavior. Within this scenario, we deduce general formula schemes to derive specifications for basic constructs such as sequential, parallel compositions and conditionals and provide details on how to handle the special cases of loops and asynchronous execution. The resulting specifications facilitate service verification and service evolution as well as auditing processes, promoting trust between the involved partners. George Baryannis, Manuel Carro, Dimitris Plexousakis |
COMPSAC | 2 |
| 2012 | A Constraint-Based Approach to Quality Assurance in Service Choreographies
Dragan Ivanovic, Manuel Carro, Manuel V. Hermenegildo |
ICSOC | 2 |
| 2012 | A Segment-Swapping Approach for Executing Trapped Computations
Pablo Chico de Guzmán, Amadeo Casas, Manuel Carro, Manuel V. Hermenegildo |
PADL | 3 |
| 2012 | An overview of Ciao and its design philosophyabstractAbstract We provide an overall description of the Ciao multiparadigm programming system emphasizing some of the novel aspects and motivations behind its design and implementation. An important aspect of Ciao is that, in addition to supporting logic programming (and, in particular, Prolog), it provides the programmer with a large number of useful features from different programming paradigms and styles and that the use of each of these features (including those of Prolog) can be turned on and off at will for each program module. Thus, a given module may be using, e.g., higher order functions and constraints, while another module may be using assignment, predicates, Prolog meta-programming, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of optimizations (including automatic parallelization). Such optimizations produce code that is highly competitive with other dynamic languages or, with the (experimental) optimizing compiler, even that of static languages, all while retaining the flexibility and interactive development of a dynamic language. This compilation architecture supports modularity and separate compilation throughout. The environment also includes a powerful autodocumenter and a unit testing framework, both closely integrated with the assertion system. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in a single journal paper, pointing instead to previous Ciao literature. Manuel V. Hermenegildo, Francisco Bueno, Manuel Carro, Pedro López-García 0001, Edison Mera, José F. Morales 0001, Germán Puebla |
Theory Pract. Log. Program. | 3 |
| 2012 | Lightweight compilation of (C)LP to JavaScriptabstractAbstract We present and evaluate a compiler from Prolog (and extensions) to JavaScript which makes it possible to use (constraint) logic programming to develop the client side of web applications while being compliant with current industry standards. Targeting JavaScript makes (C)LP programs executable in virtually every modern computing device with no additional software requirements from the point of view of the user. In turn, the use of a very high-level language facilitates the development of high-quality, complex software. The compiler is a back end of the Ciao system and supports most of its features, including its module system and its rich language extension mechanism based onpackages. We present an overview of the compilation process and a detailed description of the run-time system, including the support for modular compilation into separate JavaScript code. We demonstrate the maturity of the compiler by testing it with complex code such as a CLP(FD) library written in Prolog with attributed variables. Finally, we validate our proposal by measuring the performance of some LP and CLP(FD) benchmarks running on top of major JavaScript engines. José F. Morales 0001, Rémy Haemmerlé, Manuel Carro, Manuel V. Hermenegildo |
Theory Pract. Log. Program. | 3 |
| 2011 | Third international workshop on principles of engineering service-oriented systems: (PESOS 2011)abstractService-oriented systems have attracted great interest from industry and research communities worldwide. Service integrators, developers, and providers are collaborating to address the various challenges in the field. PESOS 2011 is a forum for all these communities to present and discuss a wide range of topics related to service-oriented systems. The goal of PESOS is to bring together researchers from academia and industry, as well as practitioners working in the areas of software engineering and service-oriented systems to discuss research challenges, recent developments, novel applications, as well as methods, techniques, experiences, and tools to support the engineering of service-oriented systems. Manuel Carro, Dimka Karastoyanova, Grace A. Lewis, Anna Liu |
ICSE | 1 |
| 2011 | Constraint-Based Runtime Prediction of SLA Violations in Service Orchestrations
Dragan Ivanovic, Manuel Carro, Manuel V. Hermenegildo |
ICSOC | 2 |
| 2011 | Parallel backtracking with answer memoing for independent and-parallelismabstractAbstract Goal-level Independent and-parallelism (IAP) is exploited by scheduling for simultaneous execution of two or more goals, which will not interfere with each other at run time. This can be done safely even if such goals can produce multiple answers. The most successful IAP implementations to date have used recomputation of answers and sequentially ordered backtracking. While in principle simplifying the implementation, recomputation can be very inefficient if the granularity of the parallel goals is large enough and they produce several answers, while sequentially ordered backtracking limits parallelism. And, despite the expected simplification, the implementation of the classic schemes has proved to involve complex engineering, with the consequent difficulty for system maintenance and extension, while still frequently running into the well-known trapped goal and garbage slot problems. This work presents an alternative parallel backtracking model for IAP and its implementation. The model features parallel out-of-order (i.e., nonchronological) backtracking and relies on answer memoization to reuse and combine answers. We show that this approach can bring significant performance advantages. Also, it can bring some simplification to the important engineering task involved in implementing the backtracking mechanism of previous approaches. Pablo Chico de Guzmán, Amadeo Casas, Manuel Carro, Manuel V. Hermenegildo |
Theory Pract. Log. Program. | 3 |
| 2010 | Building Dynamic Models of Service Compositions with Simulation of Provision Resources
Dragan Ivanovic, Martin Treiber, Manuel Carro, Schahram Dustdar |
ER | 3 |
| 2010 | Automatic Fragment Identification in Workflows Based on Sharing Analysis
Dragan Ivanovic, Manuel Carro, Manuel V. Hermenegildo |
ICSOC | 2 |
| 2010 | A Soft Constraint-Based Approach to QoS-Aware Service Selection
Mohamed Anis Zemni, Salima Benbernou, Manuel Carro |
ICSOC | 3 |
| 2010 | Towards Data-Aware QoS-driven Adaptation for Service OrchestrationsabstractSeveral activities in service oriented computing can benefit from knowing properties of a given service composition ahead of time. We will focus here on properties related to computational cost and resource usage, in a wide sense, as they can be linked to QoS characteristics. In order to attain more accuracy, we formulate computational cost / resource usage as functions on input data (or appropriate abstractions thereof) and show how these functions can be used to make more informed decisions when performing composition, proactive adaptation, and predictive monitoring. We present an approach to, on one hand, automatically synthesize these functions from orchestrations and, on the other hand, to effectively use them to increase the quality of non-trivial service-based systems with data-dependent behavior. We validate our approach by means of simulations with runtime selection of services and adaptation due to service failure. Dragan Ivanovic, Manuel Carro, Manuel V. Hermenegildo |
ICWS | 2 |
| 2010 | Swapping evaluation: A memory-scalable solution for answer-on-demand tablingabstractAbstract One of the differences among the various approaches to suspension-based tabled evaluation is the scheduling strategy. The two most popular strategies arelocalandbatchedevaluation. The former collects all the solutions to a tabled predicate before making any one of them available outside the tabled computation. The latter returns answers one by one before computing them all, which in principle is better if only one answer (or a subset of the answers) is desired. Batched evaluation is closer to SLD evaluation in that it computes solutions lazily as they are demanded, but it may need arbitrarily more memory than local evaluation, which is able to reclaim memory sooner. Some programs which in practice can be executed under the local strategy quickly run out of memory under batched evaluation. This has led to the general adoption of local evaluation at the expense of the more depth-first batched strategy. In this paper we study the reasons for the high memory consumption of batched evaluation and propose a new scheduling strategy which we have termedswapping evaluation. Swapping evaluation also returns answers one by one before completing a tabled call, but its memory usage can be orders of magnitude less than batched evaluation. An experimental implementation in the XSB system shows that swapping evaluation is a feasible memory-scalable strategy that need not compromise execution speed. Pablo Chico de Guzmán, Manuel Carro, David Scott Warren |
Theory Pract. Log. Program. | 2 |
| 2009 | Modeling Concurrent Systems with Shared Resources
Ángel Herranz-Nieva, Julio Mariño-Carballo, Manuel Carro, Juan José Moreno-Navarro |
FMICS | 3 |
| 2009 | A Tabling Implementation Based on Variables with Multiple Bindings
Pablo Chico de Guzmán, Manuel Carro, Manuel V. Hermenegildo |
ICLP | 2 |
| 2009 | Towards a Complete Scheme for Tabled Execution Based on Program Transformation
Pablo Chico de Guzmán, Manuel Carro, Manuel V. Hermenegildo |
PADL | 2 |
| 2008 | A High-Level Implementation of Non-deterministic, Unrestricted, Independent And-Parallelism
Amadeo Casas, Manuel Carro, Manuel V. Hermenegildo |
ICLP | 2 |
| 2008 | A Sketch of a Complete Scheme for Tabled Execution Based on Program Transformation
Pablo Chico de Guzmán, Manuel Carro, Manuel V. Hermenegildo |
ICLP | 2 |
| 2008 | Sound Multi-party Business Protocols for Service Networks
Michele Mancioppi, Manuel Carro, Willem-Jan van den Heuvel, Mike P. Papazoglou |
ICSOC | 2 |
| 2008 | Towards a High-Level Implementation of Execution Primitives for Unrestricted, Independent And-Parallelism
Amadeo Casas, Manuel Carro, Manuel V. Hermenegildo |
PADL | 2 |
| 2008 | An Improved Continuation Call-Based Implementation of Tabling
Pablo Chico de Guzmán, Manuel Carro, Manuel V. Hermenegildo, Cláudio Silva 0001, Ricardo Rocha 0001 |
PADL | 2 |
| 2008 | Automatic Coding Rule Conformance Checking Using Logic Programming
Guillem Marpons-Ucero, Julio Mariño-Carballo, Manuel Carro, Ángel Herranz-Nieva, Juan José Moreno-Navarro, Lars-Åke Fredlund |
PADL | 3 |
| 2008 | Towards execution time estimation in abstract machine-based languagesabstractAbstract machines provide a certain separation between platform-dependent and platform-independent concerns in compilation. Many of the differences between architectures are encapsulated in the specific abstract machine implementation and the bytecode is left largely architecture independent. Taking advantage of this fact, we present a framework for estimating upper and lower bounds on the execution times of logic programs running on a bytecode-based abstract machine. Our approach includes a one-time, program-independent profiling stage which calculates constants or functions bounding the execution time of each abstract machine instruction. Then, a compile-time cost estimation phase, using the instruction timing information, infers expressions giving platform-dependent upper and lower bounds on actual execution time as functions of input data sizes for each program. Working at the abstract machine level makes it possible to take into account low-level issues in new architectures and platforms by just reexecuting the calibration stage instead of having to tailor the analysis for each architecture and platform. Applications of such predicted execution times include debugging/verification of time properties, certification of time properties in mobile code, granularity control in parallel/distributed computing, and resource-oriented specialization Edison Mera, Pedro López-García 0001, Manuel Carro, Manuel V. Hermenegildo |
PPDP | 3 |
| 2008 | Comparing tag scheme variations using an abstract machine generatorabstractIn this paper we study, in the context of a WAM-based abstract machine for Prolog, how variations in the encoding of type information in tagged words and in their associated basic operations impact performance and memory usage.We use a high-level language to specify encodings and the associated operations. An automatic generator constructs both the abstract machine using this encoding and the associated Prolog-to-bytecode compiler. Annotations in this language make it possible to impose constraints on the final representation of tagged words, such as the effectively addressable space (fixing, for example, the word size of the target processor / architecture), the layout of the tag and value bits inside the tagged word, and how the basic operations are implemented. We evaluate a large number of combinations of the different parameters in two scenarios: a) trying to obtain an optimal general-purpose abstract machine and b) automatically generating a specially-tuned abstract machine for a particular program. We conclude that we are able to automatically generate code featuring all the optimizations present in a hand-written, highly-optimized abstract machine and we can also obtain emulators with larger addressable space and better performance José F. Morales 0001, Manuel Carro, Manuel V. Hermenegildo |
PPDP | 2 |
| 2007 | Annotation Algorithms for Unrestricted Independent And-Parallelism in Logic Programs
Amadeo Casas, Manuel Carro, Manuel V. Hermenegildo |
LOPSTR | 2 |
| 2007 | Combining Static Analysis and Profiling for Estimating Execution Times
Edison Mera, Pedro López-García 0001, Germán Puebla, Manuel Carro, Manuel V. Hermenegildo |
PADL | 4 |
| 2006 | High-level languages for small devices: a case studyabstractIn this paper we study, through a concrete case, the feasibility of using a high-level, general-purpose logic language in the design and implementation of applications targeting wearable computers. The case study is a "sound spatializer" which, given real-time signals for monaural audio and heading, generates stereo sound which appears to come from a position in space. The use of advanced compile-time transformations and optimizations made it possible to execute code written in a clear style without efficiency or architectural concerns on the target device, while meeting strict existing time and memory constraints. The final executable compares favorably with a similar implementation written in C. We believe that this case is representative of a wider class of common pervasive computing applications, and that the techniques we show here can be put to good use in a range of scenarios. This points to the possibility of applying high-level languages, with their associated exibility, conciseness, ability to be automatically parallelized, sophisticated compile-time tools for analysis and verification, etc., to the embedded systems eld without paying an unnecessary performance penalty. Manuel Carro, José F. Morales 0001, Henk L. Muller, Germán Puebla, Manuel V. Hermenegildo |
CASES | 1 |
| 2006 | Using Combined Static Analysis and Profiling for Logic Program Execution Time Estimation
Edison Mera, Pedro López-García 0001, Germán Puebla, Manuel Carro, Manuel V. Hermenegildo |
ICLP | 4 |
| 2006 | Towards Description and Optimization of Abstract Machines in an Extension of Prolog
José F. Morales 0001, Manuel Carro, Manuel V. Hermenegildo |
LOPSTR | 2 |
| 2005 | A Generator of Efficient Abstract Machine Implementations and Its Application to Emulator Minimization
José F. Morales 0001, Manuel Carro, Germán Puebla, Manuel V. Hermenegildo |
ICLP | 2 |
| 2004 | A Generic Persistence Model for (C)LP Systems (and Two Useful Implementations)
Jesús Correas Fernández, José M. Gómez, Manuel Carro, Daniel Cabeza, Manuel V. Hermenegildo |
PADL | 3 |
| 2004 | Improved Compilation of Prolog to C Using Moded Types and Determinism Information
José F. Morales 0001, Manuel Carro, Manuel V. Hermenegildo |
PADL | 2 |
| 2003 | A Generic Persistence Model for (C)LP Systems
Jesús Correas Fernández, José M. Gómez, Manuel Carro, Daniel Cabeza, Manuel V. Hermenegildo |
ICLP | 3 |
| 1999 | Concurrency in Prolog Using Threads and a Shared Database
Manuel Carro, Manuel V. Hermenegildo |
ICLP | 1 |
| 1996 | Relating Data-Parallelism and (and-) Parallelism in Logic Programs
Manuel V. Hermenegildo, Manuel Carro |
Comput. Lang. | 2 |
| 1996 | Improving the Efficiency of Nondeterministic Independent and-Parallel Systems
Enrico Pontelli, Gopal Gupta 0001, Dongxing Tang, Manuel Carro, Manuel V. Hermenegildo |
Comput. Lang. | 4 |
| 1995 | Relating Data-Parallelism and (And-) Parallelism in Logic Programs
Manuel V. Hermenegildo, Manuel Carro |
Euro-Par | 2 |
| 1995 | Using Attributed Variables in the Implementation of Concurrent and Parallel Logic Programming Systems
Manuel V. Hermenegildo, Daniel Cabeza, Manuel Carro |
ICLP | 3 |
| 1993 | Some Paradigms for Visualizing Parallel Execution of Logic Programs
Manuel Carro, Luis Manuel Gómez Henríquez, Manuel V. Hermenegildo |
ICLP | 1 |