Feature-oriented language families: a case study

Software-language engineering is gaining momentum in research and practice, but it faces many challenges regarding language evolution, reuse, and variation. We propose language families, a feature-oriented approach to language engineering inspired by product lines and program families. The goal is to systematically manage the development and evolution of variants and versions of a software language in terms of the language features it provides. We offer a tool chain for the development and management of composable language features and language families. By means of a case study on the Web-programming language Mobl, we evaluate the practicality of our approach and discuss our experiences, open issues, and perspectives.

[1]  Jia Liu,et al.  Refinements and multi-dimensional separation of concerns , 2003, ESEC/FSE-11.

[2]  Egon Börger,et al.  Modularizing Theorems for Software Product Lines: The Jbook Case Study , 2008, J. Univers. Comput. Sci..

[3]  Henrik Loeser,et al.  "One Size Fits All": An Idea Whose Time Has Come and Gone? , 2011, BTW.

[4]  Charles Simonyi,et al.  Intentional software , 2006, OOPSLA '06.

[5]  Jia Liu,et al.  Feature oriented refactoring of legacy applications , 2006, ICSE.

[6]  Sven Apel,et al.  Feature featherweight java: a calculus for feature-oriented programming and stepwise refinement , 2008, GPCE '08.

[7]  Kevin Benner,et al.  Managing Object-Oriented Framework Reuse , 1996, Computer.

[8]  Oscar Nierstrasz,et al.  The Effect of Object-Oriented Frameworks on Developer Productivity , 1996, Computer.

[9]  Ondrej Lhoták,et al.  abc : An Extensible AspectJ Compiler , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[10]  Sven Apel,et al.  FEATUREHOUSE: Language-independent, automated software composition , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[11]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[12]  William R. Cook,et al.  Safe composition of product lines , 2007, GPCE '07.

[13]  Eelco Visser,et al.  Stratego/XT 0.17. A language and toolset for program transformation , 2008, Sci. Comput. Program..

[14]  Paul Hudak,et al.  Modular domain specific languages and tools , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[15]  Oscar Nierstrasz,et al.  Practical, pluggable types for a dynamic language , 2009, Comput. Lang. Syst. Struct..

[16]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[17]  Sven Apel,et al.  An algebraic foundation for automatic feature-based program synthesis , 2010, Sci. Comput. Program..

[18]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[19]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[20]  Don S. Batory,et al.  Feature interactions, products, and composition , 2011, GPCE '11.

[21]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[22]  John C. Reynolds User-defined types and procedural data structures as complementary approaches to data abstraction , 1994 .

[23]  William R. Cook,et al.  Fitting the pieces together: a machine-checked model of safe composition , 2009, ESEC/FSE '09.

[24]  Walter Cazzola Domain-Specific Languages in Few Steps - The Neverlang Approach , 2012, SC@TOOLS.

[25]  F. Tödtling,et al.  One size fits all?: Towards a differentiated regional innovation policy approach , 2005 .

[26]  Michael R. Clarkson,et al.  Polyglot: An Extensible Compiler Framework for Java , 2003, CC.

[27]  William R. Cook,et al.  Product lines of theorems , 2011, OOPSLA '11.

[28]  Guy L. Steele,et al.  Growing a Language , 1999, High. Order Symb. Comput..

[29]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[30]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[31]  Torbjörn Ekman,et al.  The jastadd extensible java compiler , 2007, OOPSLA.

[32]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[33]  Sebastian Erdweg,et al.  SugarJ: library-based syntactic language extensibility , 2011, OOPSLA '11.

[34]  Matthias Felleisen,et al.  Synthesizing Object-Oriented and Functional Design to Promote Re-Use , 1998, ECOOP.

[35]  William R. Cook,et al.  Object-Oriented Programming Versus Abstract Data Types , 1990, REX Workshop.

[36]  Eelco Visser,et al.  Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions , 2004, OOPSLA '04.

[37]  Eelco Visser,et al.  The spoofax language workbench: rules for declarative specification of languages and IDEs , 2010, OOPSLA.

[38]  Sven Apel,et al.  Language-Independent Quantification and Weaving for Feature Composition , 2009, SC@TOOLS.

[39]  Mads Torgersen The Expression Problem Revisited , 2004, ECOOP.

[40]  Sven Apel,et al.  Type safety for feature-oriented product lines , 2010, Automated Software Engineering.

[41]  Eelco Visser,et al.  Declaratively programming the mobile web with Mobl , 2011, OOPSLA '11.

[42]  Michael D. Ernst,et al.  Practical pluggable types for java , 2008, ISSTA '08.

[43]  Gunter Saake,et al.  On the impact of the optional feature problem: analysis and case studies , 2009, SPLC.

[44]  Thomas Leich,et al.  SQL á la Carte - Toward Tailor-made Data Management , 2009, BTW.

[45]  Bernhard Rumpe,et al.  MontiCore: a framework for compositional development of domain specific languages , 2010, International Journal on Software Tools for Technology Transfer.