ailev.ru

11 января 2008 · Комментарий

Без заголовка

А как вы различаете языкоориентированный подход и подход 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.

К записи · К обсуждению