0

Languages to express domain rules are quite diverse from very simple and inexpressive to Turing-complete programming languages. If we consider developing some DSL (domain-specific language), is there any generally useful scale (Chomsky hierarchy comes to mind as an analogy, as well as Description Logic "letters", like SROIQ) to classify the domain DSLs?

Of course, it is naiive to expect full order, but at least which are some commonly used partial order classes of expressivity? And it would be nice to know what is the correct terminology for such expressivity scale.

Of course, lower bound of algorithmic (time, space) complexity can be applied the rules/inference engine itself (eg, satisfiability checking), but this belongs more to implementation details and engineering trade-off than to the model of the domain itself.

Maybe, I am wrong that such specific domain classification does exists at all, and practice as well as theory lives with measures, which I mentioned above. However, even for boolean formulas there are studied measures of complexity, so why not other theories?

Some discussion, which however does not help me, found here: https://www.linkedin.com/grp/post/81971-75677017 Also, this https://stackoverflow.com/questions/2427496/what-do-you-mean-by-the-expressiveness-of-a-programming-language is relevant. To be clear, I stick with Wikipedia definition of expressivity here, and practical side of that more than theoretical one.

Expressivity in this question is an ability to model some domain with enough precision for some given purpose. That is, it can be said, "we need at least DSL expressivity D for the model of this domain for our application, the level C is not enough."

Roman Susi
  • 283
  • 1
  • 8
  • I assume you want efficient parsing? That already restricts you to a proper subset of context-sensitive languages. Most well-developed, efficient parsing methods are restricted to subsets of the context-free languages (cf. e.g. here). As for expressiveness, that depends on your particular domain. Regular languages, say, are sufficient for many purposes but not for all. – Raphael Jul 14 '15 at 08:32
  • Parsing is more or less clear (and presumably, computationally tractable). The question is more about matching sufficient (to the goal) domain's model and language. Yes, it depends on the domain, the question is whether there is some more or less generic scale (or at least scale, applicable to practically important subclass of applied theories). That is, scale similar to complexity classes, grammar classes, DL characteristics, and such. – Roman Susi Jul 14 '15 at 09:01
  • 1
    It's not clear to me why you think there should be a distinct hierarchy for DSLs. DSLs are, after all, only formal languages. All the usual classes apply. – Raphael Jul 14 '15 at 10:08
  • At first I thought specifically about rules and languages for rules (to complement logic). Maybe I generalized the question too much at some moment. I am not that familiar with rules systems. – Roman Susi Jul 14 '15 at 10:42

0 Answers0