Grace at ECOOP

The European Conference on Object-Oriented Programming starts next month, and, once again Grace people will be there.


Andrew Black Tim Jones Kim Bruce


On Sunday, the first workshop day, Andrew Black will discuss
The Expression Problem, Gracefully
in the MASPEGHI workshop.

On Wednesday, the first day of the full conference, Tim Jones will present the technical paper Brand Objects for Nominal Typing by Tim Jones et al which describes how Grace can be extended to support nominal typing. Tim is also charing the ECOOP Doctoral Symposium this year.

On Thursday, Kim Bruce is presenting the talk Graceful Programming — Teaching Introductory Programming as part of the ECOOP Summer School.

Update:  Materials from the tutorial, including slides, documentation, sample programs, and homework exercises can be found at

Visitors to Victoria for Winter 2015

Early this month we were pleased to welcome a couple of visitors to Wellington working on Grace projects.

Satu Itaniemi         Tom Dupisre

Satu Itaniemi is joining us from Finland via the Friedrich-Alexander University of Erlangen-Nürnberg to write her Master’s thesis on DSL-based frameworks for accounting systems.

Tom Dupisre is visiting us for three months from the École Polytechnique de l’Université de Nantes to work on Grace benchmarks and libraries.

Grace at ECOOP

The European Conference on Object-Oriented Programming starts tomorrow, and Grace people will be there.

On Wednesday, the first day of the full conference, we’ll present the technical paper Graceful Dialects by Michael Homer et al describes how Grace supports dialects using lexical scope, pluggable checkers, and Grace’s flexible syntax, but without requiring macros or depending on types.

At workshops held earlier in the week, Tim Jones will talk about TinygraceA Rational Reconstruction of the Escrow Example — rewriting everything in Grace always being perfectly rational — both at the Formal Techniques for Java-like Languages workshop on Monday,

And at IWACO on Tuesday, James will present On Owners as Accessors with some examples, at least, tending towards Grace.

The Ackermann Function

Apropos of nothing, here’s a Grace version of Ackermann’s Function inspired by Sam Tobin-Hochstadt’s Racket example:

One interesting thing to note is that the condition after elseif is in {braces}, while the conditions after if is in (parens). This makes logical sense — because the first condition is always evaluated — but is of course inconsistent with every other condition.  (Apologies for the fixed-width font.)