Worcester Polytechnic Institute (WPI)

 

Bidirectional Programming Languages

Nate Foster
University of Pennsylvania

The need to edit data through a view arises in a host of applications across many different areas of computing.  However, since most systems have only limited support for updatable views, they usually have to be implemented using two separate programs---one to compute the view from the source, and another to handle updates. This rudimentary design makes programming tedious, reasoning difficult, and creates a maintenance nightmare.

 

In this talk, I will present bidirectional programming languages, which provide an elegant and effective mechanism for describing updatable views.  Unlike programs in ordinary languages, which only work in one direction, programs in a bidirectional language can be run both forwards and backwards.  When read from left to right, they describe functions that map sources to views.  When read from right to left, the same programs describe functions that map updated views back to updated sources.  Besides eliminating redundancy, these languages can be designed to ensure correctness, guaranteeing by construction that the two transformations work well together.

 

Starting with foundations, I will describe a general semantic space of well-behaved bidirectional transformations called lenses.  Then, building on this framework, I will present a specific language for writing lenses on string data, with syntax and a type system based on the familiar regular operators (union, concatenation, and Kleene star).  Finally, I will present a collection of extensions addressing the subtle complications that arise when lenses are used to manipulate ordered, ignorable, and confidential data.

______

Nate Foster will receive his PhD in Computer and Information Science from the University of Pennsylvania in the summer of 2009.  His research centers around problems in programming languages, data management, and security.  Before coming to Penn, he studied at the University of Cambridge (MPhil in History and Philosophy of Science) and Williams College (BA in Computer Science).  He has also worked as an intern at INRIA Rhone-Alpes and IBM Research.  His dissertation was supported by an NSF Graduate Research Fellowship and was recently selected as a winner of Penn's Rubinoff Award.

Host: Michael Gennert

Refreshments will be served.

 

Maintained by webmaster@cs.wpi.edu
Last modified March 17, 2009

[WPI][Home][Top]