There are now a number of bidirectional programming languages, where every program can be read both as a forward transformation mapping one data structure to another and as a reve...
J. Nathan Foster, Alexandre Pilkiewicz, Benjamin C...
The method of logical relations is a classic technique for proving the equivalence of higher-order programs that implement the same observable behavior but employ different intern...
Derek Dreyer, Georg Neis, Andreas Rossberg, Lars B...
We present the advantages of guided sentences composition for communicating in natural language with computers. We show how guidance can be achieved by means of the partial synthe...
In object-oriented programming, unique permissions to object references are useful for checking correctness properties such as consistency of typestate and noninterference of conc...
Karl Naden, Robert Bocchino, Jonathan Aldrich, Kev...
C++ templates are key to the design of current successful mainstream libraries and systems. They are the basis of programming techniques in diverse areas ranging from conventional...