2009 · 18 citations · 16 references
EngineeringSoftware EngineeringSoftware AnalysisData ScienceGraph Product LineExpression Product LineProgramming LanguagesComputer EngineeringProgramming Language ImplementationFeature ModelingFeature-oriented ProgrammingComputer ScienceExtensible LanguageSoftware DesignProgramming Language DesignCore CharacteristicsProgram AnalysisAutomated ReasoningFormal MethodsObject-oriented ProgrammingProgramming MethodologySystem SoftwareSoftware Language Engineering
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.
16
Arie van Deursen, Paul Klint, Joost Visser · ACM SIGPLAN Notices · 2000 · 1.3K citations · Full text
<i>N</i> degrees of separation
Peri Tarr, Harold Ossher, William Harrison et al. · 1999 · 1.2K citations · Full text