You can jump directly to a section in this page:

Mi Erdös number is three:

Teaching, past and present

Before 1999
Several courses on Computational Logic and Logic Programming.
1998-2000
A first semester on Data Structures and a second semester on Advanced Data Structures.
2000-2001
Concurrent Programming and second semester on Advanced Data Structures
2001-2009
Concurrent Programming
2002-2005
2009-...
Data structures and algorithms
2002-2005
Principles and Practice of Declarative Programming (graduate, no homepage yet, but you can access some material here!) and Component-based Distributed Software.
2006-2007
Rigurous Software Development, as part of the European Master on Computational Logic.

Educational Material

Sometimes slides are, for the knowlegeable person, a very convenient way of grasping what a subject is about. I am putting here, aside from strictly teaching material, slides on a variety of topics I am working on.
Concurrent Programming (in Spanish).
Manuel Carro et al. . Undergraduate material under a Commons license.

An Introductory Course on Constraint Logic Programming.
Manuel Carro et al. . Unpublished. Part of the VOCAL ESPRIT project. An introduction to constraint logic programming using intervals as paradigm, and with examples written for (mainly) Prolog IV.

Undergraduate course on Computational Logic.
Although I am not contributing much nowadays to these slides (I am not teaching the subject any longer), I maintained and put a lot of effort on previous versions of the course, including homework, etc.

Graduate Course on Rigorous Software Development
This course is offered in several postgraduate degrees at the CS School. Please refer to its description on the web to know more on it.

Slides on Concurrent Programming (in Spanish).
These correspond to a Concurrent Programming course which uses Ada as main language. They feature a novel way of specifying and designing concurrent systems, based on a stepwise refinement which makes it possible to achieve system correctness with higher reliability than traditional, almost lore-based, approaches.

A presentation of the Amos Project (see also the project main page).
The AMOS Project, of which I am the local principal researcher, is a EU-funded ESPRIT Project aiming a easing the reuse of Open Source Software by stablishing a suitable ontology and creating descriptions of pieces of software to be searched through using a tailored inference engine written in Ciao Prolog.

Free Software, Licenses, and Patents.
This is a two-hour talk addressed to graduate students, or people with similar knowledge, where I try to explain the underpinnings of these three very interesting (and somewhat tangled) topics much in everyone's mouth nowadays.

An Introduction to Constraint Logic Programming.
This is an introduction to CLP which, unlike other introductions to the same topic, does not assume Prolog knowledge: instead, Prolog (or, more exactly, Prolog data structures and unification) is viewed as just a handy, particular type of constraint system. This is, to some extent, the same approach that K. Marriot and P. Stuckey took in their book "Programming with Constraints: an Introduction". I have to say that, although this particular set of slides is relatively new, I developed the idea independently from them.

Research Interests

My work focuses mainly on Logic Programming and related areas. I am interested in the combination of logic-based approaches to programming with proposals comeing from other areas such as functional programming, formal methods, etc., as well as in the cross-fertilization among these fields. What follows is a very partial list:

Research Projects

Ongoing Projects:

Research Networks, Training Networks, Working Groups:

Completed Projects:


Books

I was editor of the book Parallelism and Implementation of Logic and Constraint Logic Programming, with I. de Castro Dutra, V. Santos Costa, G. Gupta, E. Pontelli, and F. Silva, published by Nova Science Publishers, Commack, NY, USA.

Conference and Workshop Proceedings

I have been also coorganizer and proceeding editor of:
PADL 2010, with Ricardo Peńa Marí
To be publised by Springer Verlag as LNCS 5937.

CICLOPS 2008, with Bart Demoen
This is the Eigth Colloquium on Implementation of Constraint and Logic Programming Systems. (Udine, December 2008).

CICLOPS 2004, with José F. Morales
That is the Fourth Colloquium on Implementation of Constraint and Logic Programming Systems, which also served as the yearly CoLogNet area workshop (St. Malo, September 2003).

ITCLS 2003, with Jesús Correas
That is the Second CoLogNet Workshop on Implementation Technology for Computational Logic Systems (Pisa, September 2003). The CoLogNet meetings are a continuation of the Compulog Net Meetings in much the same way as CologNet is a continuation of Compulog.

CBD/ITCLS 2002, with Kung-Kiu Lau and Claudio Vaucheret.
That is the First CoLogNet Workshop on Component-based Software Development and Implementation Technology for Computational Logic Systems (Madrid, September 2002). The CoLogNet meetings are a continuation of the Compulog Net Meetings in much the same way as CologNet is a continuation of Compulog.

Parallelism and Implementation Technology for (Constraint) Logic Programming
Coedited by Inęs Dutra, Vítor Santos Costa, Gopal Gupta, Enrico Pontelli, Manuel Carro and Peter Kacsuk, published by Elsevier in Electronic Notes on Theoretical Computer Science.

The 1996 JICSLP Workshop and Compulog Net Area Meeting on Parallelism and Implementation Technology
Compulog Net was the Network of Excellence in Computational Logic, funded by the European Commission.

My PhD Thesis

Some Contributions to the Study of Parallelism and Concurrency in Logic Programming. Manuel Hermenegildo was my PhD advisor. You can download it here gzipped PostScript format (850 Kb) and in PDF format (1985 Kb) [N.B: the PostScript version has better quality. I could not make pdflatex accept the whole of the thesis yet.]. I have also stored an HTML version which is however of very low quality (many images could not be automatically inlined by the LaTeX2HTML version which I used).

Selected Papers (in Journals and Refereed Conferences and Workshops)

This is just a snapshot that I painstakingly maintain more or less up to date. It is hard. You can fish for some papers looking at our online repository sorted by year or by topic. You can also look at which of my papers appear listed at DBLP, CiteSeer, or CSB. Some spurious results will also appear, but I guess that this is just quite difficult to avoid.

D. Ivanovic, J. F. Morales, M. Carro, M. Hermenegildo.
Towards Structured State Threading in Prolog. CICLOPS 2009, 15 pages, July 2009.

P. Chico de Guzmán, M. Carro, M. Hermenegildo.
Towards a Complete Scheme for Tabled Execution Based on Program Transformation. 11th International Symposium on Practical Aspects of Declarative Languages (PADL'09), LNCS, Num. 5418, pages 224-238, Springer-Verlag, January 2009.

P. Chico de Guzmán, M. Carro, Manuel V. Hermenegildo.
A Tabling Implementation Based on Variables with Multiple Bindings. International Conference on Logic Programming (ICLP 2009), LNCS, Num. 5649, 15 pages, Springer-Verlag, July 2009.

M. V. Hermenegildo, F. Bueno, M. Carro, P. López, J.F. Morales, G. Puebla. An Overview of The Ciao Multiparadigm Language and Program Development Environment and its Design Philosophy. Festschrift for Ugo Montanari, LNCS, Num. 5065, pages 209-237, Springer-Verlag, June 2008.

P. Chico de Guzmán, M. Carro, M. Hermenegildo. A Program Transformation for Continuation Call-Based Tabled Execution. Colloquium on Implementation of Constraint and LOgic Programming Systems (ICLP associated workshop), 15 pages, University of Udine, December 2008.

P. Chico de Guzmán, M. Carro, Manuel V. Hermenegildo.
A Sketch of a Complete Scheme for Tabled Execution Based on Program Transformation. Int'l. Conference on Logic Programming, LNCS, Vol. 5366, pages 795-800, Springer Verlag, December 2008. Short paper.

A. Casas, M. Carro, M. Hermenegildo.
A High-Level Implementation of Non-Deterministic, Unrestricted, Independent And-Parallelism. 24th International Conference on Logic Programming (ICLP'08), LNCS, Vol. 5366, pages 651-666, Springer-Verlag, December 2008.

P. Chico de Guzmán, M. Carro, M. Hermenegildo, Claudio Silva, Ricardo Rocha.
An Improved Continuation Call-Based Implementation of Tabling. 10th International Symposium on Practical Aspects of Declarative Languages (PADL'08), LNCS, Vol. 4902, pages 198-213, Springer-Verlag, January 2008.

Guillem Marpons, Julio Mariño, M. Carro, Ángel Herranz, Juan José Moreno-Navarro, Lars-Åke Fredlund.
Automatic Coding Rule Conformance Checking Using Logic Programming. 10th International Symposium on Practical Aspects of Declarative Languages (PADL'08), LNCS, Vol. 4902, pages 18-34, Springer Verlag, January 2008.

A. Casas, M. Carro, M. Hermenegildo.
Towards a High-Level Implementation of Execution Primitives for Non-restricted, Independent And-parallelism. 10th International Symposium on Practical Aspects of Declarative Languages (PADL'08), LNCS, Vol. 4902, pages 230-247, Springer-Verlag, January 2008.

J. Morales, M. Carro, M. Hermenegildo.
Comparing Tag Scheme Variations Using an Abstract Machine Generator. 10th Int'l. ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP'08), pages 32-43, ACM Press, July 2008.

E. Mera, P. López-García, M. Carro, M. Hermenegildo.
Towards Execution Time Estimation in Abstract Machine-Based Languages. 10th Int'l. ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP'08), pages 174-184, ACM Press, July 2008.

Michele Mancioppi, Manuel Carro, Willem-Jan van den Heuvel, Mike P. Papazoglou. Sound Multi-party Business Protocols for Service Networks. Proceedings of the Sixth International Conference on Service Oriented Computing, LNCS, Vol. 5364, pages 302-316, Springer-Verlag, December 2008.

A. Casas, M. Carro, M. Hermenegildo.
Towards A High-Level Implementation of Flexible Parallelism Primitives for Symbolic Languages. Parallel Symbolic Computation (PASCO'07), 2 pages, ACM Press, July 2007. Extended Abstract.

A. Casas, M. Carro, M. Hermenegildo.
Towards High-Level Execution Primitives for And-Parallelism: Preliminary Results. Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS'07, ICLP associated workshop), 15 pages, U. of Evora, September 2007.

P. Chico de Guzmán, M. Carro, M. Hermenegildo, Claudio Silva, Ricardo Rocha.
Some Improvements over the Continuation Call Tabling Implementation Technique. Colloquium on Implementation of Constraint and LOgic Programming Systems (ICLP associated workshop), 15 pages, Universidade do Porto, September 2007.

Guillem Marpons-Ucero, Julio Mariño, Ángel Herranz, Lars-Åke Fredlund, Manuel Carro, Juan José Moreno-Navarro.
Automatic Coding Rule Conformance Checking Using Logic Programs. 17th Workshop on Logic-based methods in Programming Environments, WLPE 2007, September 2007.

J.F. Morales, M. Carro, M. Hermenegildo.
Towards Description and Optimization of Abstract Machines in an Extension of Prolog. Logic-Based Program Synthesis and Transformation (LOPSTR'06), LNCS, Num. 4407, pages 77-93, July 2007.

A. Casas, M. Carro, M. Hermenegildo.
Annotation Algorithms for Unrestricted Independent And-Parallelism in Logic Programs. 17th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'07), LNCS, Num. 4915, pages 138-153, Springer-Verlag, August 2007.

E. Mera, P. López-García, G. Puebla, M. Carro, M. Hermenegildo.
Combining Static Analysis and Profiling for Estimating Execution Times. Ninth International Symposium on Practical Aspects of Declarative Languages, LNCS, Num. 4354, pages 140-154, Springer-Verlag, January 2007.

M. Carro, J. Morales, H.L. Muller, G. Puebla, M. Hermenegildo.
High-Level Languages for Small Devices: A Case Study. Compilers, Architecture, and Synthesis for Embedded Systems, pages 271-281, ACM Press / Sheridan, October 2006.

E. Mera, P. López-García, G. Puebla, M. Carro, M. Hermenegildo.
Using Combined Static Analysis and Profiling for Logic Program Execution Time Estimation. 22nd International Conference on Logic Programming (ICLP 2006), LNCS, Num. 4079, pages 431-432, Springer-Verlag, August 2006.

J. Morales, M. Carro, M. Hermenegildo.
Towards Description and Optimization of Abstract Machines in an Extension of Prolog. Pre-proceedings of the 16th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'06), pages 62-78, Universitŕ Ca'Foscari, July 2006.

J. Morales, M. Carro, G. Puebla, M. Hermenegildo. A Generator of Efficient Abstract Machine Implementations and its Application to Emulator Minimization (awarded as Best Conference Paper).
Proceedings of the 21st International Conference on Logic Programming, LNCS 3668, Springer Verlag, October 2005.

J. Morales, M. Carro, M. Hermenegildo. Improving the Compilation of Prolog to C Using Moded Types and Determinism Information.
Proceedings of the Sixth International Symposium on Practical Aspects of Declarative Languages, pages 86-103, Springer-Verlag, June 2004.

J. Correas, J. M. Gomez, M. Carro, D. Cabeza, M. Hermenegildo. A Generic Persistence Model for CLP Systems (And Two Useful Implementations).
6th International Symposium on Practical Aspects of Declarative Systems, LNCS, pages 104-119, Springer-Verlag, 2004.

J. Correas, J. M. Gomez, M. Carro, D. Cabeza, M. Hermenegildo. A Generic Persistence Model for CLP Systems.
2003 International Conference on Logic Programming, LNCS, Num. 2916, pages 481-482, Springer-Verlag, December 2003. Extended abstract.

J. Morales, M. Carro, M. Hermenegildo. Improving the Compilation of Prolog to C Using Type Information: Preliminary Results.
Colloquium on Implementation of Constraint and LOgic Programming Systems, (ICLP associated workshop), pages 89-102, December 2003.

J. Morales, M. Carro. Improving the Compilation of Prolog to C Using Type Information: Preliminary Results.
Proceedings of the CBD 2002 / ITCLS 2002 CoLogNet Joint Workshop, 14 pages, Facultad de Informatica, September 2002.

M. Carro. The Amos Project: An Approach to Reusing Open Source Code.
Proceedings of the CBD 2002 / ITCLS 2002 CoLogNet Joint Workshop, pages 59-70, Facultad de Informática, September 2002.

A Simple Approach to Distributed Objects in Prolog
Manuel Carro, Manuel Hermenegildo. In CICLOPS 2002, an ICLP 2002 Workshop, Copenhagen, Denmark, July 2002.

Foreign Language Interfaces for Prolog: A Terse Survey
Roberto Bagnara, Manuel Carro. Newsletter of the Association for Logic Programming.

M. Carro, M. Hermenegildo. Tools for Search Tree Visualization: The APT Tool (also available in ps).
Analysis and Visualization Tools for Constraint Programming, LNCS, Num. 1870, pages 237-252, Springer-Verlag, September 2000.

M. Carro, M. Hermenegildo. Tools for Constraint Visualization: The VIFID/TRIFID Tool (also available in ps).
Analysis and Visualization Tools for Constraint Programming, LNCS, Num. 1870, pages 253-272, Springer-Verlag, September 2000.

Concurrency in Prolog Using Threads and a Shared Database
Manuel Carro, Manuel Hermenegildo. Proceedings of ICLP'99, Las Cruces, NM, EE.UU.

Interfacing Prolog and VRML and its Application to Constraint Visualization.
Göran Smedbäck, Manuel Carro, Manuel Hermenegildo. In Practical Applications of Prolog and Constraint Technology 1999, London, UK.

Some Dessign Issues in Constraint Program Visualization and Abstraction.
Manuel Carro, Manuel Hermenegildo. Published in APPIA-GULP-PRODE 1998 (AGP'98). A Coruña, Spain, July 1998.

The CIAO Multi-Dialect Compiler and System: An Experimentation Workbench for Future (C)LP Systems.
M. Hermenegildo, F. Bueno, D. Cabeza, M. Carro, M. García de la Banda, P. López, G. Puebla. Published in Proceedings of APPIA-GULP-PRODE'96, Donostia-San Sebastián, Spain, 1996.

IDRA (IDeal Resource Allocation): Computing Ideal Speedups in Parallel Logic Programming (there is also a long version).
M.J. Fernández, M. Carro, M. Hermenegildo. In EuroPar'96, Lyon, France, Springer-Verlag LNCS 1124.

Relating Data-Parallelism and (And-)Parallelism in Logic Programs.
Manuel Hermenegildo, Manuel Carro. Published in The Computer Languages Journal, 1996, vol. 22, num 2/3, pages 143-163.

Improving the Efficiency of Nondeterministic Independent And-parallel Logic Programming Systems.
Enrico Pontelli, Gopal Gupta, DonXing Tang, Manuel Hermenegildo, Manuel Carro. Published in The Computer Languages Journal, 1996, vol. 22, num 2/3, pages 115-142.

Relating Data-Parallelism and (And-)Parallelism in Logic Programs.
Manuel Hermenegildo, Manuel Carro. Published in EuroPar'95.

Using Attributed Variables in the Implementation of Concurrent and Parallel Logic Programming Languages.
M. Hermenegildo, D. Cabeza, M. Carro, ICLP'95. Also in ILPS'94 Post Conference Workshop on Design and Implementation of Parallel Logic Programming Systems, Orcas Island, Washingtong, EE.UU.

IDRA (IDeal Resource Allocation): A Tool for Computing Ideal Speedups.
M.J. Fernández, M. Carro, M. Hermenegildo. Workshop on Parallel and Data--Parallel Execution of Logic Languages, ICLP 94.

Last Parallel Call Optimization and Fast Backtracking in And-parallel Logic Programming Systems.
Tang DongXing, Enrico Pontelli, Gopal Gupta, Manuel Carro. Workshop on Parallel and Data-Parallel Execution of Logic Languages, ICLP 94.

A Note on Data-Parallelism and (And-Parallel) Prolog
M. Hermenegildo, M. Carro. In ICLP'94 Workshop on Parallel and Data Parallel Execution of Logic Programs.

Some Paradigms for Visualizing Parallel Execution of Logic Programs.
M. Carro, L. Gómez, M. Hermenegildo, ICLP93.

Implementation of an Event Driven Scheme for Visualizing Parallel Execution of Logic Programs
M. Carro, L. Gómez, M. Hermenegildo. Post-conference workshop on Parallel and Distributed Implementations, International Joint Conference and Symposium on Logic Programming, 1992.

M. Hermenegildo, M. Carro. Experimenting with Independent And-Parallel Prolog using Standard Prolog.
Jornadas Nacionales de Programación Declarativa, pages 478-497, U. Malaga, October 1991.

Other Papers


Technical Reports

  1. D. Ivanovic, M. Carro, M. Hermenegildo. Sharing-Based Independence-Driven Fragment Identification for Service Orchestrations. Num. CLIP7/2009.0, Technical University of Madrid (UPM), December 2009.

  2. D. Ivanovic, M. Carro, M. Hermenegildo, P. López, E. Mera. Towards Data-Aware Cost-Driven Adaptation for Service Orchestrations. Num. CLIP5/2009.0, Technical University of Madrid (UPM), November 2009.

  3. D. Ivanovic, M. Carro, M. Hermenegildo. An Initial Proposal for Data-Aware Resource Analysis of Orchestrations with Applications to Proactive Monitoring. Num. CLIP6/2009.0, Technical University of Madrid (UPM, November 2009. Preproceedings of MONA+ 2009.

  4. J.F. Morales, M. Carro, M. Hermenegildo. Description and Optimization of Abstract Machines in a Dialect of Prolog. Num. CLIP4/2009.0, Technical University of Madrid (UPM), October 2009.

  5. D. Ivanovic, M. Carro, M. Hermenegildo. Towards Data-Aware Resource Analysis for Service Orchestrations. Num. CLIP3/2009.0, Technical University of Madrid (UPM), June 2009.

  6. M. Carro, B. Demoen. Proceedings of CICLOPS 2008. Num. CLIP10/2008.0, 408 pages, Technical University of Madrid, September 2008.
  7. A. Casas, M. Carro, M. Hermenegildo. Automatic Unrestricted Independent And-Parallelism in Logic Programs. Num. CLIP11/2007.0, Technical University of Madrid (UPM), December 2007. Under consideration for publication in Theory and Practice of Logic Programming (TPLP).

  8. M. Carro, C. Daffara, F. Bueno, D. Cabeza. Selection Heuristics for Matching. Num. CLIP12/2003.0, 18 pages, Computer Science School, Technical University of Madrid, May 2003. Deliverable D7 of the AMOS Project.

  9. M. Carro. The AMOS Project: The Matching Engine Design. Num. CLIP2/2003.1, Technical University of Madrid, February 2003.

  10. M. Carro, J. M. Gomez, J. Correas. The AMOS Project: The Internal Query Language Design. Num. CLIP1/2003.1, Technical University of Madrid, December 2002.

  11. M. Carro, C. Daffara, G. Puebla. The AMOS Project: An Approach to Reusing Open Source Software. Num. CLIP3/2002.0, Technical University of Madrid, August 2002. Presented at the V Hispalinux Conference, Madrid, Spain.

  12. F. Bueno, D. Cabeza, M. Carro, M. Hermenegildo, P. López-García, G. Puebla. The Ciao Prolog System. Reference Manual (V1.8). Num. CLIP4/2002.1, School of Computer Science, Technical University of Madrid (UPM), May 2002. System and on-line version of the manual available at http://clip.dia.fi.upm.es/Software/Ciao/.

  13. J.M. Ramos, M. Carro. VIFID User's Manual (also available in ps). Num. CLIP3/98.0, 25 pages, Technical University of Madrid, September 1998.

  14. A. López, M. Carro. A User Guide to APT (also available in ps). Num. CLIP6/97.1, 12 pages, Facultad de Informática, UPM, Technical University of Madrid (UPM), September 1997.

  15. A. Aggoun, F. Benhamou, F. Bueno, M. Carro, P. Deransart, W. Drabent, G. Ferrand, F. Goualard, M. Hermenegildo, C. Lai, J.Lloyd, J. Maluszynski, G. Puebla, A. Tessier. CP Debugging Tools: Clarification of Functionalities and Selection of the Tools.Num. D.WP1.1.M1.1-2, 15 pages, DISCIPL Project, June 1997.

  16. M. Carro. Implementation of Non-Determinism and Optimization of the Memory Usage in the And-Parallel Execution of Logic Programs. Ms. Thesis, T. University of Madrid (UPM), Facultad de Informática, Madrid, 28660, 99 pages, December 1993.In Spanish.

  17. F. Bueno, M. Carro, D. Cabeza, F. Ballesteros, P. López-García, M. García de la Banda, M. Hermenegildo, L. Gómez, S. Prestwich, S.-W. Yan. A Proposal for an Interchange Abstract Syntax for (Parallel) Prolog. Num. CLIP3/93.0, 33 pages, Computer Science Dept., Technical U. of Madrid (UPM), June 1993.


Conference and Workshop Organization

Second CoLogNet Workshop on Implementation Technology for Computational Logic Systems
Programm Committee member and Co-organizer, with Jesús Correas
First CoLogNet Workshop on Component-based Software Development and Implementation Technology for Computational Logic Systems
Programm Committee member and Co-organizer, with Kung-Kiu Lau and Claudio Vaucheret.
1996 Parallelism and Implementation Technology Compulog Area Meeting and Post-JICSLP'96 Workshop
Program Committee ember and Co-organizer, together with Enrico Pontelli.
Int'l Conference on Programming Language Implementation and Logic Programming and Int'l Conference on Algebraic and Logic Programming
Spain, 1994. Member of the organizing committee.
1992 Spanish Conference on Declarative Programming (ProDe'92)
Madrid, 1992. Member of the Organizing Committee. Note: this conference joined with the Italian GULP, and has now become GLUP-ProDe.

Program Committees


Misc

I also devote some of my time to some other things: Minor hackeries with sysadmin, operating systems, networks, etc. Afterwards, I wrote this page myself directly in HTML (hence its poor looking, and my personal satisfaction).


Go back to my home page