N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Domain-specific languages: an annotated bibliography
ACM SIGPLAN Notices
Hyper/J: multi-dimensional separation of concerns for Java
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
IEEE Transactions on Software Engineering
Feature-Oriented Programming and the AHEAD Tool Suite
Proceedings of the 26th International Conference on Software Engineering
Variability management with feature-oriented programming and aspects
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
The ruby programming language
JRuby Cookbook
Programming Ruby 1.9: The Pragmatic Programmers' Guide
Programming Ruby 1.9: The Pragmatic Programmers' Guide
Language support for managing variability in architectural models
SC'08 Proceedings of the 7th international conference on Software composition
Evaluating support for features in advanced modularization technologies
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Dynamically adaptable software product lines using Ruby metaprogramming
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Supporting program variant generation and feature files in rbFeatures
Proceedings of the 15th International Software Product Line Conference, Volume 2
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Metaprogramming in Ruby: a pattern catalog
Proceedings of the 17th Conference on Pattern Languages of Programs
Hi-index | 0.00 |
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 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.