5 ms·
>> A problem-oriented-language is a language tailored to a particular application. To avoid that uniquely clumsy term, I'll usually substitute application langu
by marktangotango 12y ago
>> A problem-oriented-language is a language tailored to a particular application. To avoid that uniquely clumsy term, I'll usually substitute application language as synonymous.
Is this equivalent to today's idea of Domain Specific Langauges?
- bunderbunder 12y agoSpeaking from the armchair, I'm gonna go with "not really". Part of what makes a good DSL good is that both its semantics and its syntax is well-adapted to the problem domain. And they don't necessarily have to be built up within the syntax of some other language. Gherkin comes to mind as an example, or perhaps Inform. Whereas what Moore's talking about (I think - I haven't read all of the linked article just now, of course, but once upon a time I did belong to the Chuck Moore fan club.) is something closer to just writing well-factored code - you build up a bunch of small routines to do small problems, and build other routines on top of those, until you've constructed a library that lets you speak about the problem succinctly. This isn't really too far off from what Abelman and Sussman were advocating in SICP. (And personally I like to think of Forth and Scheme as being two different sides of the same coin.) They're both useful concepts, but they're useful for different things. DSLs are great for many tasks, but building a good DSL takes a lot of time, so it isn't really worthwhile unless you expect it to be used a lot. OTOH, this "problem-oriented" concept is useful most everywhere, including for writing one-offs. I'm less certain of the value of using something like Forth's compiling words or Scheme's macros to do it, though - metaprogramming makes me feel like a superhero, but it also makes me want to kick myself when I need to try and make sense of something I wrote two years previously.
- wtetzner 12y agoI think what Moore is talking about is what is called an Embedded Domain Specific Language.