Generation technique for Django MVC web framework using the stratego transformation language
Danil Annenkov, Evgeny Cherkashin
Abstract
Danil Annenkov, Evgeny Cherkashin
Abstract
Domain Specific Languages (DSL) allows one to raise level of abstraction, improve development productivity, and establish an equitable communication between domain experts and developers. Language-oriented programming (LOP) is a new paradigm based on DSL construction, allowing separating domain-specific and technology-specific aspects of a system under development. LOP shares some ideas with model-driven architecture and model-driven development. Spoofax language workbench is used as a primary tool for DSL design, and based on Stratego, a transformation language with programmable rewriting strategies, and Syntax Definition Formalism as language for grammar definition. As an example of DSL a simple textual language for domain modeling is considered. Rewriting rules and strategies are used as an uniform approach to generate, validate DSL code, and make arbitrary abstract syntax tree transformations. Rules for code generation implemented using so called “string interpolation” technique. Source DSL code translated to python code that can be deployed within Django web framework resulting to a web-application with create/update/delete functionality on a corresponding database. Developed DSL is an example of “definition by transformation“ approach. To get real benefits from DSL we need to add more domain specific features in DSL.
OpenAlex reports 5 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Domain Specific Languages (DSL) allows one to raise level of abstraction, improve development productivity, and establish an equitable communication between domain experts and developers. Language-oriented programming (LOP) is a new paradigm based on DSL construction, allowing separating domain-specific and technology-specific aspects of a system under development. LOP shares some ideas with model-driven architecture and model-driven development. Spoofax language workbench is used as a primary tool for DSL design, and based on Stratego, a transformation language with programmable rewriting strategies, and Syntax Definition Formalism as language for grammar definition. As an example of DSL a simple textual language for domain modeling is considered. Rewriting rules and strategies are used as an uniform approach to generate, validate DSL code, and make arbitrary abstract syntax tree transformations. Rules for code generation implemented using so called “string interpolation” technique. Source DSL code translated to python code that can be deployed within Django web framework resulting to a web-application with create/update/delete functionality on a corresponding database. Developed DSL is an example of “definition by transformation“ approach. To get real benefits from DSL we need to add more domain specific features in DSL.
Key concepts: Digital subscriber line, Computer science, Domain-specific language, Programming language, Abstract syntax, Python (programming language), Model transformation, Abstract syntax tree