Automatic bidirectionalization via programming language techniques

DFG-Grant: Automatische Bidirektionalisierung durch programmiersprachliche Techniken


We study bidirectional transformations: pairs of forward/backward-functions that relate two domains of data in a consistent way. Such coupled transformations play an important role in several areas of computer science. The overarching question in the project is how such function pairs can be developed and maintained with as little effort as possible, yet high reliability. To this end, techniques from the theory of programming languages are used and developed further. In particular, an approach is followed in which the programmer only has to write the forward-function, whereas an appropriate backward-function is synthesized automatically. Beside formal aspects concerning consisteny guarantees, also pragmatic aspects are relevant - such as practical applicability and taking the programmer's intention into account when several backward-functions would be possible for a given forward-functions according to just the consistency conditions.

Principal investigator:

Janis Voigtländer


Deutsche Forschungsgemeinschaft (DFG), Project Number: VO 1512/2-1

The project is mainly supported with a full research position for 36 person months.

The projected funding volume is 235.800 Euro (including 39.300 Euro overhead that go to the university).

Relevant publications:

Slides of some talks:

Online implementations:

Offspring work by other people based on the POPL'09 paper:


bx wiki, GRACE-BX'08, Bi-Trans in ABC'10, Dagstuhl Seminar "bx", CSXW'11, BX'12, Special issue of ECEASST, Spring Mindswap on Information-rich Programming, PSW'12, BX'13, BIRS Workshop on BX, BX'14