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