Domain Specific Modeling
Channel: esugboard
Date: 2011-12-07

Domain Specific Modeling

Presenter: Christophe Allegrini

Abstract

"For a long time there's been a style of software development that seeks to describe software systems using a collection of domain specific languages. You see this in the Unix tradition of 'little languages' which generate code via lex and yacc; you see it in the Lisp community with languages developed inside Lisp, often with the help of Lisp's macros." Martin Fowler

While Lisp is a particularly good choice to create domain-specific languages ("DSLs"), Lisp does not enable a natural language idiom. With all the focus on object orientation it is often overlooked how influenced the creators of Smalltalk were by Lisp. A way of looking at Smalltalk is to see it as a lambda calculus language with a significantly more natural syntax.

This presentation looks at how to use this pure object language as an easy-to-use lambda calculus language to create real DSLs and ultimately to create a business natural language (a "BNL"). Businesses have long strived to find a simpler way of allowing their domain experts to express their knowledge in working software. BNLs are the latest iteration of that search.

Through simple examples, we will try to show how to go from object oriented design to DSL design; and to use a simple syntax that is almost like a natural language. These examples integrate into web applications that use the Seaside framework with additional Flash™ integration. This produces ergonomic applications very easily while staying focused on the BNL itself.

ESUG 2010, Barcelona

http://esug.org/wiki/pier/Conferences/2010/Talks/Domain-specific-Modeling