Thanks to EU funding, the SCALPL (ScalPL: A scalable programming language) project undertook research that focused on techniques to make DSLs easier to implement, compose and reason about. It developed a framework for extensible language and various influential programming methods for DSLs. Project partners addressed whether feature-oriented programming (FOP) can avoid code clones or whether it facilitates FOP-related clones. They analysed 10 feature-oriented software product lines concerning code cloning. Results show there are many clones in such lines and the majority of them are FOP-related. Then they demonstrated how the clones can be removed by applying refactorings. In other research, the SCALPL team incrementalised programmes through their derivative. The derivative maps changes in the programme's input directly to modifications in its output without reexecuting the initial programme. Team members presented a programme transformation that takes programmes to their derivatives. This is fully static and automatic, supports first-class functions and produces derivatives that are responsive to normal optimisation. To investigate performance, project members carried out a case study by implementing the programme transformation on a general-purpose programming language. Running time was improved by over four orders of magnitude. Researchers also looked into the development of complex software applications, which sometimes lead to long restarts in testing new programme parts. Current approaches to dynamic software updates have flexibility or performance limitations. To deal with this issue, they introduced a runtime update approach based on a general-purpose computer programming language that offers flexible dynamic software updates, is platform independent, introduces only minimal performance overhead and does not dictate the programme architecture. The approach's applicability and performance was assessed and compared with current dynamic software update approaches. With a method that emphasised scalability, SCALPL should contribute to a profoundly new approach to programming.
Scalable programming language, domain-specific languages, SCALPL, feature-oriented programming, derivative