And everyone says you can't do DSLs in boring old languages. :P
You can certainly do DSLs in C. That’s what SystemC is.