Boomerang

Boomerang is a programming language for writing lenses, which are well-behaved bidirectional transformations. Those lenses operate on ad-hoc, textual data formats.

First appeared
2008
Reference
Wikipedia article