October 10, 2009

Skribler

I just released a new project on Sourceforge. It's something I have been working on quite a bit over the course of the past month or so (I had plenty of time while being unemployed ;). The project is named Skribler, and it is part structured editor, part framework for setting up a structured editor for domain-specific languages.
Skribler has two related goals. One is to make it easy to define custom domain-specific languages. The other is to get rid of the need for parsers by persisting the abstract syntax trees, not the source code. It is the latter which really started this work. It's really a very simple idea, and I don't know of any editor which takes this approach.
Below are two screenshots of Skribler in action. You'll probably notice the highlights on the text: this indicates the selected element and what you can do with it. It is the whole point of a structured editor that you can only do things which don't invalidate the structure.

Right now there are two languages defined in Skribler. One is a pure demonstrator based on Martin Fowler's Record Configuration language from his Language Workbenches article. The other is a lite version of WASA Templates, which is a high-level language for defining webpages by combining small templates. Skribler allows you to define the template composition, and has a basic compiler which then performs the compositions as specified. I'm using this right now to build a new personal website, and it's quite usable. Yes, I'm eating my own dogfood here. :-)
Anyway, it's alpha software, very much in the prototyping stage, and I love it! I welcome any feedback if you tried it out, as well as comments on the ideas that are behind it.
PS. If anyone is looking for a software engineer in the region of Aalst, keep on looking. I'm off the market again; starting a new job next monday. Jay!

1 comment: