3 ms·
> An example is a visualization DSL. Interesting. I would say, this is not a DSL, but rather co-DSL. I can't really provide a formal definition right now, but
by js8 3y ago
> An example is a visualization DSL.
Interesting. I would say, this is not a DSL, but rather co-DSL. I can't really provide a formal definition right now, but I feel like primitives of DSL compose in the input of the evaluation function, while the primitives of co-DSL compose in the output of the evaluation function. In both cases, the evaluation function is fixed by the DSL's implementation. That's why DSL has a syntax tree (on input), but co-DSL has a tree of output widgets.
- noelwelsh 3y agoThis feels like an interesting idea but I can't quite fully see it. If a DSL is: AST -eval-> Result where AST is fixed and Result varies (depending on the choice of eval). Then a coDSL is AST -eval-> Result where AST varies and Result is fixed ? This feels like a restatement of the difference in modularity / extensibility.