Без заголовка
А как вы различаете языкоориентированный подход и подход DSL? По смыслу DSL никак не подразумевает типа реализации, да и те типы реализации, что у вас помянуты, вполне укладываются в языкоориентированный подход -- как вырожденные случаи.
Ежели вы хотите просто заметить, что есть языки, а есть речь каждого конкретного человека (и языки живут промеж людей, а речь есть у конкретных людей), то я тут вполне согласен.
Но не могу не напомнить о существовании моего любимого проекта FONC, в котором DSL-языки создаются "по настроению" в пределах нескольких строк -- как пишет Ian Piumarta 27 ноября 2007г. в их списке рассылки:
We should be able to go beyond even domain-specific languages, to what I've been calling 'mood-specific languages'. If it makes my (e.g.) message-passing code more readable to be able to write 'x[y,z]' instead of '(x at: y) at: z' during a three-line region of my program in the middle of some function or method, I want to be able to instantiate my new syntactic convention for just those three lines of code. It'll certainly not look anything like this...`push-syntax expr += expr-1[expr-2,expr-3] -> ((expr-1 at: expr-2) at: expr-3) ;
c[i,k] = a[i,j] * b[j,k].
`pop-syntax expr
but the closer we can get to the spirit of the above, the better.