This is the mail archive of the kawa@sources.redhat.com mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

So what am I using Kawa for?


One to add to the 'Projects using Kawa' section:

I'm using Kawa to implement Model Master, a set of tools for improving
spreadsheet integrity. The problem (or a whole herd of problems) with
spreadsheets is that it's very easy to make undetected errors when writing
them, e.g. mistyped cell names, formulae in the wrong cell, etc.
Furthermore, trying to comprehend somebody else's spreadsheet can be a
hateful task, because of the lack of meaningful cell names, difficulty of
placing long comments, and general lack of high-level structure.

Model Master (MM) started off as a high-level language for describing the
structure and contents of spreadsheets, a language designed to be easy to
read and document, and with a module system to facilitate code-reuse. I
implemented a compiler for generating Excel files from this. (The
inspiration for MM came by accident from some work on category theory and
sheaf semantics, believe it or not, but somehow, I don't think the book
'Category Theory for Excel 2000 Users' would have many buyers, so I tend
to keep this quiet.)

More recently, I've realised that many spreadsheet programmers will never
want to give up the convenience of working with the raw spreadsheet, so
I've been working on a decompiler that generates MM programs from
spreadsheets. You could then use these programs as the primary source,
with Excel becoming merely the evaluator. However, the decompiler could
also be quite useful just in checking for errors such as unset cells and
wrong cell dependencies.

Finally, I'm also working on a system that allows MM programs (and hence
spreadsheets, if passed through the decompiler), to be run on an evaluator
running under a Web server. This I'm doing for the Institute of Learning
and Research Technology at Bristol, and will enable them to put a range of
economic models onto the Web very rapidly, which they want to do for their
finance and economics education "Biz/Ed" Web site.  At the moment, I
evaluate the spreadsheet by interpreting its contents, but if I need more
speed, I could compile it to JVM code: perhaps the Gnu bytecode libraries
would prove useful.

The interest in XML support that I've expressed in recent messages arises
because MM programs need a 'layout' section to describe the positioning
and format of the spreadsheet variables, as well as textual annotations,
and I'm using a slightly extended HTML for this.

Why Kawa? I want something portable, hence Java. But Java is verbose, and
also I believe that compiler-writing is best done functionally.
Object-orientation may be fine when modelling real-world systems with
state that changes over time, but the mathematical entities encountered in
compiling are like numbers - no state, and no identity other than their
value, so in my view, OOP is completely inappropriate. (Not everyone would
agree.) Hence Kawa. I tried JPython first, but Kawa is cleaner, offers
proper support for higher-order functions, etc. (I wish it had an infix
syntax though. Multiply-nested brackets are not ergonomic.)

There are some papers under http://www.ifs.org.uk/~popx/publications.html
.

Cheers,

Jocelyn Paine
http://www.ifs.org.uk/~popx/
+44 (0)7768 534 091 





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]