Software product lines (SPL) is oriented on generation of software product variants from set of features. A feature's implementation extends the final application, usually in more than one place. That is also the intention of GSM and SCT.
Feature oriented software development (FOSD) is a general paradigm for program synthesis from a set of features in software product lines. A feature is an increment in program functionality.
Generative programming (GP) is a discipline of Automatic programming (AP) based on following disciplines:
Object-oriented programming (OOP)
Aspect-oriented programming (AOP)
Main goals of GP:
high intentionability (easy way of specifying application features)
high reusability and adaptability
easy managing of program variants
increasing efficiency (optimization in space and execution time)
Our basic approach introduced scripting languages in generator/application development, new models with graphic representation and new concepts like late binding of templates and dynamic instantiation of frames.
Open Promol is a scripting language intended for specifying program modifications of target language. It uses set of parameterized functions that can be combined to generate character strings (target language source code).
Codeworker is a parsing tool and source code generator. It is a scripting language derived from C family of languages that enables making different kinds of generation scripts.
XVCL is a variation mechanism based on Basset's frames that simplifies managing Software Product Lines (SPL). It is not a programming language, like Open Promol or CodeWorker, but a mechanism for representing recurring software structures in generic and adaptable form usable for code generation.
Our basic approach is closest to XVCL, but SCT distinguishes three model elements (Specification, Configuration and Templates) as separate units, which are dynamically combined into frames during the process of generation. This approach makes generating system much more adaptable.