February 5, 2011 § Leave a comment
Domain-specific languages (DSLs) are basically programming languages. But they are specifically targeted/tailored towards particular problem domains. Hence, it implies to the fact that DSLs are narrow in applicably unlike General-purpose programming languages(GPLs); hence, DSL precisely abstracts the domain and its semantics. At the same time, being specific to a particular problem domains make it hard to reuse and adapt to a new problem domains or to the same evolving domain with new set of requirements.
“Only way to manage complexity is to bring order to chaos”
Complex software systems consist of several concerns such as, performance, reliability , fault-tolerance, persistency. Hence, domain specialization is required to capture these concerns precisely and to perform various analyses specific to the domain. DSLs , thus reduce the complexity of complex systems by providing high level linguistic abstraction through succinct syntax and by isolating concerns from one another which additionally results in highly cohesive sub-systems. Following figure illustrate the fact that DSLs covers various concerns of complex software systems vertically rather than horizontally.
Figure 2 : Vertical domain specialization of DSLs in a complex system.
Page: 1 2