Welcome to the CLIP Lab
We work on techniques and tools to help write complex programs, in a shorter time, and ensuring correctness and efficiency:
- Design and implementation of programming languages
(compilers, virtual machines, AI-powered compilation). - Advanced programming tools that perform automated:
- verification and debugging, of both functional and non-functional properties, and
- automatic optimization, including partial evaluation, parallelization, reducing the energy and other resource usage of programs, etc.,
We have contributed in these areas more than 300 publications (available classified by topic and by year; see also our older FTP archive), participated in more than 40 projects, obtained a good number of prizes and awards, and developed several languages and tools.
The Ciao System |
Much of our work is integrated in Ciao (and its preprocessor CiaoPP), a next-generation, multi-paradigm programming language and environment, featuring:
- Functions, predicates, constraints, higher-order, objects, ...
- Assertion language, automatic static and dynamic checking ("gradual" types/properties), assertion-based testing.
- Autodoc, semantic code search (searching for code by what it does).
- Industrial performance, automatic parallelization, portability, ...
Joining the lab: we offer internships, scholarships, and positions to participate in the Lab's activities, for undergraduate students (grado), and also to pursue Masters and Ph.D. degrees in the group. See the group's list of publications by research topic for further information on (a subset of) the topics that we work on and contact us at <clip-staff at cliplab dot org> if interested.
We are part of the IMDEA Software Institute and the School of Computer Science (DIA and DLSIIS departments) of the Technical University of Madrid (UPM), and have strong ties with many international academic institutions and industry (including Apple, Airbus, AbsInt, Motorola, Telefonica I+D, DEIMOS Space, ISOCO, GTD, Indra, Semantic Systems, etc.).