Boomerang v0.2

A bidirectional programming language for ad-hoc, textual data.

Boomerang is a programming language for writing lenses—well-behaved bidirectional transformations—that operate on ad-hoc, textual data formats. Every lens program, when read from left to right, describes a function that maps an input to an output; when read from right to left, the very same program describes a "backwards" function that maps a modified output, together with the original input, back to a modified input.

Lenses have been used to solve problems across a wide range of areas in computing including: in data converters and synchronizers, in parsers and pretty printers, in picklers and unpicklers, in structure editors, in constraint maintainers for user interfaces, in software model transformations, in schema evolution, in tools for managing system configuration files, and in databases where they provide updatable views.

The best way to get started with Boomerang is to download our system and work through the examples in the first few chapters of the manual. Many more details can be found in our research papers.

Mailing List

Discussion of Boomerang and other bidirectional languages takes place on bidirectional transformations wiki and email list.

Team

Boomerang is developed by Nate Foster, Benjamin C. Pierce, and Michael Greenberg with major contributions from Davi Barbosa, Aaron Bohannon, Julien Cretin, Alexandre Pilkiewicz, and Alan Schmitt.

Support

Our work is supported by the National Science Foundation under the following grants:

Boomerang is free software; you may redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.

diskimage   Binary Distribution

Pre-compiled binaries for OS X (x86) and Linux (x86) are available

boomerang-0.2-linux-i686-binary.tar.gz 1.05 MB2 Sep 2009 1:02pm
boomerang-0.2-osx-intel-binary.tar.gz 1004.34 KB2 Sep 2009 11:01am
boomerang-0.2-linux-i686-64.tar.gz 1.04 MB2 Sep 2009 11:00am
boomerang-0.1-osx-intel.tar.gz 1.28 MB25 Jul 2008 11:15am
boomerang-0.1-linux.tar.gz 1.3 MB25 Jul 2008 11:14am

disktar   Source Distribution

We also distribute the Boomerang sources:

boomerang-0.2-source.tar.gz 927.85 KB2 Sep 2009 11:01am
boomerang-0.1-source.tar.gz 569.95 KB25 Jul 2008 11:07am

Subversion Access

For read-only access to our live repository perform these steps (in your .ssh directory):

Then check out the repository from:

    svn+ssh://harmony@eniac.seas.upenn.edu/trunk

Boomerang Manual

 
J. Nathan Foster and Benjamin C. Pierce. Boomerang Programmer's Manual. [ pdf ]

Research papers on Boomerang

 
Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, and Alan Schmitt. Boomerang: Resourceful Lenses for String Data. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), San Francisco, California, January 2008.
[ conference version | tech report | slides ]
 
J. Nathan Foster, Alexandre Pilkiewcz, and Benjamin C. Pierce. Quotient Lenses. To appear in ACM SIGPLAN International Conference on Functional Programming (ICFP), Victoria, British Columbia, September, 2008.
[ conference version ]

Research papers on lenses in general

 
Aaron Bohannon, Jeffrey A. Vaughan, and Benjamin C. Pierce. Relational Lenses: A Language for Updateable Views. In ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS), Chicago, Illinois, June 2006. Also available as Technical Report MS-CIS-05-27, Department of Computer and Information Science, University of Pennsylvania, December 2005.
[ conference version | tech report ]
 
J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, and Alan Schmitt. Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Transactions on Programming Languages and Systems, 29(3):17, May 2007. Preliminary version presented at the Workshop on Programming Language Technologies for XML (PLAN-X), 2004; extended abstract presented at Principles of Programming Languages (POPL), 2005.
[ conference version | journal version | slides ]

©2008 The Boomerang Team.

Valid XHTML 1.0 Strict Valid CSS!