Khora

IRISA · Rennes, France

Research group in empirical software engineering · IRISA laboratory, Rennes, France.

Software developers now have to explore and operate within an increasingly complex and constantly evolving design space, while having to deal with deploying new software releases faster. Khora is developing a research activity in software engineering to help developers in mastering their increasingly complex design space. To do so, Khora develops new scientific theories, approaches, and techniques related to exploratory programming, a development mode to try out, compare, explore different versions of software artifacts. Khora's research agenda implies working on: 1. domain-specific IDEs and digital twins to help developers master their development design space through novel exploratory programming features (augmented development environment); 2. large-scale, polyglot, AI-based, code analysis techniques to underpin exploratory programming (augmented code analysis). The application domains of Khora encompass software engineering with software artifacts (co-)evolution and optimization (e.g., reduce software energy consumption) and scientific computing to help scientists in their complex software development.

Khora is a research group part of the IRISA laboratory (a mixed research unit grouping CNRS, University of Rennes, Inria, INSA Rennes), Rennes, France.
Khora is one of the spin-offs that succeeded DiverSE in sept 2026 (which itself succeeded Triskell in 2013).

Note that the name "Khora" is not an acronym, but a philosophical word Plato used to describe the design space of a demiurge (a creator, developers in our context).

IRISACNRSUniversity of RennesInriaINSA Rennes

Research Axes

Exploratory programming requires a research agenda that involves studying both HCI (Human-Computer Interaction) and software engineering research paths. Khora's research agenda thus implies working on two research axes:

1

Augmented Development Environment

By taking the perspective of developers, this axis will characterize and develop exploratory programming and propose novel approaches to build domain-specific and cutting-edge development environments (IDEs and digital twins) supporting domain-specific exploratory programming. Scientific contributions had worked on related topics, but they are mainly related to general- purpose languages (GPLs) and their general-purpose IDEs. Moreover, those contributions lack to work on easing the creation of domain-specific and highly interactive IDEs and digital twins.

Exploratory programmingLive programmingDevXIDEDigital twinInteractive system engineeringHCIV&V
2

Augmented Code Analysis

While Axis 1 focuses on HCI engineering facets of exploratory programming, this second research axis focuses on underlying software engineering techniques to underpin this development mode. In particular, deterministic and explainable code analysis techniques will improve the precision of exploratory processes.

Polyglot code analysisScalable code analysisAI-based exploratory techniquesValidity frame