archives

Two lectures at the British Computer Society in Covent Garden on Friday 18 May

Embedded domain-specific languages

Two lectures at the British Computer Society in Covent Garden on Friday 18 May.

Embedding a DSL in a programming language is a low-cost strategy that doesn't sacrifice the power or generality of the programming language. Call this the agile approach to DSLs; an approach more suitable for some languages than others.

iPod – iTunes – iDyalog

"If music be the food of love…" John Daintree leaps into action with a DSL for iTunes so he can summon his date's favourite tune as soon as he gets her home. (Show us your moves, John.)

Go Fish!

Morten Kromberg previews an open-session workshop prepared for XP2007 in Como this summer and tested earlier this year in Gothenburg.

The workshop seeks a DSL to play Go Fish! and explores solutions embedded in Python, Ruby and Dyalog APL. For domain-driven design, much turns out to depend on the level of semantic density achievable. Morten shows us in Dyalog just how much you can get done with nothing but the PL.

details
5.30-7.30pm Fri 18 May
British Computer Society
Wilkes Room
5 Southampton Street
London WC2E 7HA

RSVP essential: ray_cannon@compuserve.com

The British APL Association is a Specialist Group of the British Computer Society.

[ANN] AsyncObjects Framework (Java)

I would like to announce the AsyncObjects Framework. The framework provides class library that allows relatively easy creation of asynchronous programs in Java. The framework makes a heavy use of Java inner classes and reflection to provide higher-level constructs over event loops.

In this framework, I have tried to replicate core ideas from E programming language (home page) in pure-Java in as usable form as possible. E is obviously more usable, but it have luxury of not being restricted by Java syntax. Feedback on further improvements is welcome.

I think that the result is more usable than what have been discussed here.

See developer's guide, javadoc, and samples for more details.