The high cost of developing and integrating Domain-Specific Languages (DSLs) in an existing system narrows down its applicability in other domains. In this frequently changing world, the abstraction of a domain also undergoes change, which makes the maintainability of an existing DSL costly as it is change-susceptible. To overcome the problem attached to the integration, maintainability and adaptability of DSLs, the authors promote a dynamic interpretation model that allows the adaptation of the program’s execution without any syntactic change to the DSL with respect to the varying context by decoupling the semantics of the DSL from its implementation.
To support this dynamic interpretation model, the authors propose adopting a component based model where the generic interpreter coordinates with the different runtime components to interpret the language specification. The dynamic reconfiguration of these components with respect to the varying context allows for context-sensitive semantics of the same language specification. Thus, the model can be discerned as a function that takes three inputs in form of – a language definition, components and context information and outputs a dynamic configuration that reflects the specified context. By using polymorphic counterpart, a generic interpreter can reinterpret a language types of non-functional behavior can also be accommodated in the components’ implementation, thus conforming to a particular context to support these non-functional aspects. Therefore, it is evident that this model enables dynamic customization of the language semantics based on the context and various changing requirements which, in turn, makes the DSLs highly adaptable.
In the coda, the authors argue that this model of dynamic reconfiguring the interpreter results in more flexible adaptability than the existing static model to reflect the changes in the context. Although the development cycle of a new DSL still remains the same as its static counterpart, this dynamic model has a positive impact on the maintainability of DSL. As a result of this model, the author envisage that by redefining the language for a different context, an existing DSL can be reused to spawn off a new DSL, which in turn can significantly reduce the development costs of DSLs. Henceforth, it can solve the initial problem of narrow applicability of DSLs due to high cost through reusability.