Feature-oriented programming with Ruby

Sebastian Günther, Sagar Sunkle
2009 Proceedings of the First International Workshop on Feature-Oriented Software Development - FOSD '09  
Features identify core characteristics of software in order to produce families of programs. Through configuration, different variants of a program can be composed. Our approach is to design features as first-class entities of a language. With this approach, features can be constructed and returned by methods, stored in variables and used in many expressions of the language. This paper introduces rbFeatures, an implementation of first-class features in the dynamic programming language Ruby. Our
more » ... goal is to show how such a language extension works with respect to its dynamic host language and the applicability of our results. In particular, we present a step-by-step walkthrough how to use rbFeatures in order to implement known case-studies like the Graph Product Line or the Expression Product Line. Since we created a pure Ruby language extension, rbFeatures can be used with any existing programs and in any virtual machine implementing Ruby.
doi:10.1145/1629716.1629721 dblp:conf/models/GuntherS09 fatcat:2wxai2ryqbgl7bjlol4pcc7nna