Parent: InterpretingPlainEnglishAsADomainLanguage
The comments about lisp and executable uml are exactly what I was thinking about when I was reading this. (Maybe it was just the ((parenthesis) attack))
The strength and power of "plain" english is that it is inherently ambiguous, contextual and nonlinear. Words have multiple unrelated definitions (e.g. 'just'), they depend on order (at least in english), and they can mean totally different things to different people (e.g. 'crib'). It seems to me like it would be tough to write a language that is deterministic (interperable, or whatever) using one that was nondeterministic without losing the ease of use and flexibility.
The thing that makes me nervous is the number of people who devote their academic careers to natual language processing. It makes me think that it's a tough problem. I'm emphatically not saying that it's unsolvable, I'm just afraid that the space of brittle solutions is much larger than the space of nice, flexible solutions.
On the other hand, you're absolutely thinking in the right direction. The more nearly executable an artifact is, the more useful it is. That's why unit tests are awesome: an executable representation of the requirements. A good DSL for testing could mean you end up with a bunch of test scripts that tell you when you're done, and they'd have a couple footnotes for how some bit of business logic is supposed to work. I haven't had the pleasure of that kind of arrangement with my BAs, but I think it could be really useful.
The thing that worries me the most about using an "English DSL Story Card" to generate some sort of template code is that I'm still going to have to go in and write a bunch of glue and tweaks to take care of the "what I meant was", which is going to show up as a string of bugs. However, I may just be deep in a project where the code is harder to explain in english than in java. In my project, when I think about what code is "business logic" vs "pushing data around and dealing with weirdness", I come up with a 20/80 split (at best).
Andy