March 30, 2010


I found the following quote in a footnote of a paper on "Hashing Concepts and the Java Programming Language " by Robert Uzgalis:

Any language that requires a program to translate a declaration to English to make sense of it has failed to meet the primary communication objective of any programming language.

That's one problem Cobol doesn't have. ;-)

Seriously, though, it's good to remember that source code is read more often than it is written. So put some effort into writing clean code!

On an unrelated note, a good friend of mine and core developer of jBPM, Joram Barrez, stepped down from jBPM to start on a new BPM platform for Java. Joram: looking forward to seeing the new project. Good luck!

March 24, 2010

Koopa 1up

I just updated the Koopa Cobol Parser project with the ability to export the syntax trees of the parsed Cobol code to XML. The output is very basic, but it has the full tree as it is seen by Koopa, including tokens in the water (i.e. which got skipped). No whitespace or line/column information though.

The executable jar has also been updated, so you can try before you buy.

March 16, 2010

Skribler 2 – first milestone

Work on the second version of Skribler is progressing quite nicely. I just reached my first milestone: a skribel which defines a grammar for skribels which store grammars for skribels.
Too fast ? Here is what I've got, in smaller increments:
  • A storage format for skribels (very basic trees).
  • Reading and writing skribels from and to file.
  • Basic tree parsing support.
  • A small tool which uses tree parsing to parse a grammar stored in a skribel, and generates a tree parser from that. The generated tree parser can then be used to parse other skribels.
  • A grammar stored in a skribel which defines the format for grammars stored in skribels. The tree parser generated from this can then be used to parse the grammar which generated the tree parser in the first place.
All that looks like this in the console:
Grammar loaded from "resources/grammar.grammar.skribel".
Matching skribel in "resources/grammar.grammar.skribel"...
  Matching SUCCESSFUL.
Now that's cool. :-)

March 10, 2010

Polyglot programming

It is now rare for a non-trivial application to use just one programming language. (Src:

It would be much cooler if this wasn't mostly due to combinations like Java (or other back-end language) + XML (for configuration) + HTML (for presentation) + Javascript (for interactivity). This is more a historical accident rather than a conscious decision.

But still, if it opens up the road to real combination of programming languages (Java + Prolog has been on my wish list many times), then all the better.

March 01, 2010

More structured editors

The following two links are related to my Skribler project.
The first shows the work of Kirill Osenkov on a structured editor for C# (though not limited to C#). The videos are especially nice to watch, as they show some of the benefits of going for structured editors. What I'm missing here is an idea of how easy it would be to set up additional languages with this editor.
The second link is for Citrus which is a tool/programming language for setting up structured editors. There is video of it in action here. Unfortunately the tool is not publicly available.
Makes me feel that I should get back to work on Skribler...