In my last post, I discussed lenses as means to specify well-behaved bidirectional transformations. In this post, I introduce two very simple lenses: identity and composition. Both lenses are part of a bidirectional transformation language working on terms. Its syntax is specified in SDF while its semantics is defined by term rewriting rules in Stratego.

Strategic Lenses: Prologue
Inspired by my former colleague Arif Wider, I had a closer look on lenses recently. I started with reading some papers by Nate Foster et alii. You can find a bibliography including these papers at researchr.org. Next, I implemented some lenses in Stratego. These lenses work on terms. In an upcoming series of blog posts, I like to share some insights. This post starts the series with the overall idea of lenses.

Installing WebDSL
WebDSL is a domain-specific language for the implementation of dynamic web applications. It consists of a core language with constructs to define entities, pages and business logic. Higher-level abstractions, modelling access control and workflow, are defined in a modular fashion as extensions of the core language. To develop your own web applications with WebDSL, you need two things: The WebDSL tools and a runtime for web applications.
I needed to install both on a Mac running Snow Leopard. Here is how it works.



