Eric Niebler wrote:
I hadn't even considered the notion of a type system for a DSEL, but it 
makes perfect sense. Unfortunately, the only tutorial I found for van 
Wijngaarden grammars is here:

http://homepages.cwi.nl/~steven/vw.html

Perhaps it's because I'm tired, but I'm not making heads or tails of it 
at the moment. Can you point me to a gentler introduction?

(Way back when I started with expression templates, I thought that 
calling them an "embedded language" was just a cute metaphor, but much 
can be gained from taking the serious view that these really *are* 
languages, deserving of grammars, semantic actions, ... type systems, 
too. Once we fully embrace that view, there's decades worth of 
programming language theory we can leverage.)
and:
Joel Falcou wrote:
Eric Niebler a ?crit :
> (Way back when I started with expression templates, I thought that 
> calling them an "embedded language" was just a cute metaphor, but much 
> can be gained from taking the serious view that these really *are* 
> languages, deserving of grammars, semantic actions, ... type systems, 
> too. Once we fully embrace that view, there's decades worth of 
> programming language theory we can leverage.)
>
    
You just have described parts of my research plans  ;) 
My current work try to get a way using ET and Concept in C++ to have a 
condensed way to describe operationnal and/or denotanionnal semantic for 
C++ DSEL. Guess I'll indeed have to swallow up this typing system rules 
myself.

Ivan : Thanks for the references.
  
VWG was invented for and used to define Algol68. Personally, I find it easiest to understand a formal system when I have a worked out example in front of me. If you're the same way, I suggest starting with:
http://en.wikipedia.org/wiki/Algol68
http://burks.brighton.ac.uk/burks/language/other/a68rr/rrtoc.htm
Lindsey, C.H. and van der Meulen, S.G., Informal Introduction to ALGOL 68, North-Holland, 1971 (also sometimes known as "Algol68 without Tears")
I'm biased here - I was on the working group that produced the second reference above - but I think that the only way to introduce semantics into a practical and general DSEL system is via formal means. However, both VWG and its exemplar in Algol68 have a very high intellectual tractability barrier, akin to the barrier facing newcomers to Functional Programming or Metaprogramming. But a casual note in Boost has already turned up three people who at least see the problem. That's a start :-)

Ivan