Research activity

The scientific activity of APR mainly develops around Algorithms and Languages and several projects exist, with many collaborations. We follow a dual approach to achieving safe and efficient applications by combining programming languages (design, implementation and program analysis tools) and algorithms (modeling, complexity analysis,random generation) through theory (formal approach in semantics and combinatorics) and practice (concrete objectives producing prototyping softwares and industrial applications).

The APR team is based on three axes following a common research theme around concurrency:

  1. Combinatorics and Analysis of algorithms
  2. Languages and Tools for Critical Softwares and Web Applications
  3. Algorithms and Languages for Multicore Processors

Combinatorics and Analysis of algorithms

In the APR team, we develop combinatorial me- thods for analysing the performances of algorithms and randomly sampling complex structures. Our methods allow to quantify the complexity of algorithms and efficiently generate combinatorial objects. Our research both aims at extending the expressiveness of the models, and adapting the methods to real application domains : information retrieval in massive data, robustness tests or software validation, modeling of graphs, quantita- tive study of concurrency. We lead several ambitious projects such as non-uniform sampling, sampling with multi-parameter specifications, graph computing with GPU programming as well as quantitative analysis of programming languages.


Languages and tools for Critical Softwares and Web Applications

The APR team works also on design and implementation of programming languages from the point of view of expressiveness, reliability and efficiency. We aim at building a complete chain from computation models (processes calculus, type systems, static analysis, …) to actual implementations. Theses works focus on two different application domains. On the one hand we are interested in the development of tools for the certification of critical systems (tests and static analysis by abstract interpretation). On the other hand, web-based technologies offers an excellent laboratory for new ideas, such as computational migration and synchronous-reactive programming for multi-tier applications. Both domains revolve around component-based systems which strongly benefit from a top-down vision (global control, type system, monitors, multi-tier design)


Algorithms and Languages for Multicore Processors

A real need for abstraction arose out of the democratization of parallelism and concurrency. These abstractions should facilitate parallel composition while allowing a compiler to generate efficient code for a given target architecture. These abstractions must also be clearly specified and allow the static analysis of a number of properties to ensure the safe execution of the programs created. The great strength of our team on this research theme is the complementarity of the work we have carried out in recent years. On the one hand, we have a recognized expertise concerning advanced algorithmics and parallel programming techniques, particularly in the shared memory model and data-parallelism. This concerns, on the one hand, the abstraction of the hardware, CPU and GPU, and the algorithms adaptation for these specific hardware and on the other hand the tools of static analysis by abstract interpretation for concurrent programs for shared memory models as well as for communicating processes. In a complementary way, we have studied concurrency and mobility based on π-calculus.


Projects in collaboration

  • ERC project MOPSA (2016-21)
  • Systematic project LCHIP (2017-20)
  • PEPS APRES (2017)
  • PEPS GraphGPU (2016-17)
  • GDRI ALEA NETWORK (2015-19)
  • ANR project COVERIF (2015-19)
  • ANR project MOST (2015-19)
  • ITEA3 project ASSUME (2015-18)
  • SU-FAPERJ project PSwmsGpu (2015-16)
  • Systematic project UCF (2014-17)
  • ANR network CHRONOS (2014-16)
  • ANR project CERCLES (2011-14)
  • ANR project MAGNUM (2010-15)
  • ANR project PWD (2010-14)
  • Systematic project OpenGPU (2010-12)
  • ANR project GAMMA (2007-10)
  • System@tic project COUVERTURE (2008-10)
  • PEPS project STOCHASFLIP (2008-10)
  • Digiteo project PWT (2007-10)

LIP6 Projects

  • PART (2017-) : Conception d'algorithmes de tracking efficace sur architectures hétérogène (with ALSOC)
  • LinkThreads (2014-) : Link flow analysis of dynamic graphs from traces of multithreaded programs (with Complex networks and MOVE)
  • Z3 (2010-12): Implantation of the ZAM functional machine in the VMkit virtual machine (with REGAL)
  • AFMI (2008-10) : Formal Approaches for the metrology of the Internet (with Complex Network)
  • PAME (2008-10): Programming Emerging Multicore Architectures (with PEQUAN and ALSOC)
  • SYNUS (2007-09): Symbolic-Numeric Algorithms for Solving Polynomial Systems (with PEQUAN and SALSA)

Seminars and working groups


APR days