I am Zirun Zhu, a PhD student at Sokendai (The Graduate University for Advanced Studies) doing research on bidirectional transformations (BXs for short). It was my pleasure to serve as a student volunteer for ICFP, and got a free ticket to all the events there.
In this post, I would like to talk about the “paper” Synthesizing Bijective Lenses, which is also the champion of the Student Research Competition (SRC for short). Interestingly, although one is required to submit an extended abstract, a poster, and slides for attending the SRC only, this work comes with a 127-page pdf file including all the details. That is why I should call it a paper. As a student working on BXs, I was not impressed at all when I heard the work at the venue. The first reason is that bijective BXs are relatively easy to handle — in other words, perhaps are of little research value. In my opinion, as for lenses, being non-injective is the intrinsic nature, and is one of the most interesting property for us to investigate into. The second reason is that many hold the opinion that program synthesis does no good on the research about programming languages, since program synthesis is a testing-based approach and we hardly know whether the synthesised program is correct for all the input.
No, on second thoughts, I gradually feel that domain-specific program synthesis might be a correct and attractive research direction, as the authors of the paper show that they can synthesise all of the 39 benchmark programs within several seconds. This is really a big surprise to me. I am a layman on program synthesis and one of my deepest impression (or bias) of it is that the speed of synthesis is rather slow, as for general-purpose programming languages the search space is usually too large. Then, the other way around, it might be perfect to synthesise domain-specific languages, which are designed for special situations and the search space is small, as the success of the paper shows. In addition, the authors also developed some optimisations and did the experiments on the impact of these optimisations. The results of the experiments show that the improvement is dramatic. In conclusion, this piece of work might have changed my current opinion towards program synthesis to: domain-specific and optimisations lead to practical use. (As for the correctness, the authors also gave dozens of formal definitions of the language and the algorithm, which should convince the readers a lot, compared to other papers regarding program syntheses.)
That is, it is always a pleasure to know unexpected research result from a conference like ICFP.