<<< Previous speaker Next speaker >>>

Steve Freeman, Independent Consultant

 Steve  Freeman

Steve Freeman is an independent consultant, specialising in Agile software delivery. He was one of the pioneers of XP in the UK, and an early member of London's Extreme Tuesday Club. He co-authored the original paper on Mock Objects, and an OOPSLA experience report.

Steve has developed software in many environments, such as research labs, bespoke systems, and shrink-wrap. He has degrees in Statistics, Music, and computer Science. He is a developer of jMock and nMock

Presentation: "Embedding Domain-Specific Languages in Java and C#"

Track:   Domain Specific Languages

Time: Wednesday 14:30 - 15:30

Location: SAS Suecia


Paraphrasing Philip Greenspun, every significant program contains an ad-hoc, informally-specified implementation of one or more domain-specific languages. This is familiar in dynamic language communities; as Dick Gabriel says, lispers first write a language then use that language to write the application. However, the idea that programmers are language designers is much less recognised in the static language communities where most of us work.

We believe that a program's domain-specific languages should be made explicit as part of the development process, so that they are visible and can be made easier to use. Often this has to be done within the programming language of the application, rather than as a separate language. The relevant techniques should be part of the arsenal of every mature software professional.

This talk will explore how to design and implement domain-specific languages within conventional languages such as Java and C#. In particular, we are interested in working within the underlying language's features, such as its type system, rather than hosting a different language like Jython or Groovy. As a motivation, we will describe the evolution of the jMock library (http://www.jmock.org), for which we developed an embedded language to express constraints on an object under test and compare it to nMock, an equivalent library in C#.

Password protected Download slides