Automatic bidirectionalization via programming language techniques
DFG-Grant: Automatische Bidirektionalisierung durch programmiersprachliche TechnikenAbstract:
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änderFunding:
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:
-
J. Voigtländer
Bidirectionalization for Free!
at POPL'09 -
J. Voigtländer, Z. Hu, K. Matsuda, and M. Wang
Combining Syntactic and Semantic Bidirectionalization
at ICFP'10 -
J. Voigtländer
Ideas for Connecting Inductive Program Synthesis and Bidirectionalization
at PEPM'12 -
N. Foster, K. Matsuda, and J. Voigtländer
Three Complementary Approaches to Bidirectional Programming
in SSGIP'10 revised lecture notes, 2012 -
H. Pacheco, N. Macedo, A. Cunha, and J. Voigtländer
A Generic Scheme and Properties of Bidirectional Transformations
arXiv:1306.4473 -
J. Voigtländer, Z. Hu, K. Matsuda, and M. Wang
Enhancing semantic bidirectionalization via shape bidirectionalizer plug-ins
in Journal of Functional Programming, 2013 -
H. Grohne, A. Löh, and J. Voigtländer
Formalizing Semantic Bidirectionalization with Dependent Types
at BX'14 -
H. Grohne and J. Voigtländer
Formalizing Semantic Bidirectionalization and Extensions with Dependent Types
in Journal of Logical and Algebraic Methods in Programming, 2017
Slides of some talks:
-
Bidirectionalization for Free!
at POPL'09, Savannah, January 22, 2009. -
Semantic Bidirectionalization and the Constant-Complement Perspective
at Bi-Trans in ABC'10, Hakone, March 13, 2010. -
Combining Syntactic and Semantic Bidirectionalization
at ICFP'10, Baltimore, September 28, 2010.
A video of this talk is available here. -
Complement-Based Bidirectionalization (part of tutorial)
Efficiency of Bidirectional Transformations (position statement)
at Dagstuhl Seminar "bx", Dagstuhl, January 17 and 20, 2011. -
Ideas for Connecting Inductive Program Synthesis and Bidirectionalization
at PEPM'12, Philadelphia, January 23, 2012. -
Programming Language Approaches to Bidirectional Transformation
as invited speaker at LDTA'12, Tallinn, March 31, 2012. -
Bidirectional Transformations - a PL perspective
at BIRS Workshop on BX, Banff, December 2, 2013.
A video of this talk is available here.
Online implementations:
- A web interface to the library developed in the POPL'09 paper is accessible here.
- For the follow-up work at ICFP'10, a web interface is accessible here.
Offspring work by other people based on the POPL'09 paper:
-
K. Matsuda and M. Wang
Bidirectionalization for free with runtime recording: Or, a light-weight approach to the view-update problem
at PPDP'13 -
M. Wang and S. Najd
Semantic bidirectionalization revisited
at PEPM'14 -
K. Matsuda and M. Wang
"Bidirectionalization for free" for monomorphic transformations
in Science of Computer Programming, 2015