[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2430502.2430518acmotherconferencesArticle/Chapter ViewAbstractPublication PagesvamosConference Proceedingsconference-collections
research-article

Feature-oriented language families: a case study

Published: 23 January 2013 Publication History

Abstract

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.

References

[1]
S. Apel and C. Kästner. An Overview of Feature-Oriented Software Development. JOT, 8(5):49--84, 2009.
[2]
S. Apel, C. Kästner, A. Größlinger, and C. Lengauer. Type Safety for Feature-Oriented Product Lines. ASE, 17(3):251--300, 2010.
[3]
S. Apel, C. Kästner, and C. Lengauer. Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement. In GPCE, pages 101--112. ACM, 2008.
[4]
S. Apel, C. Kästner, and C. Lengauer. FeatureHouse: Language-Independent, Automated Software Composition. In ICSE, pages 221--231. IEEE, 2009.
[5]
S. Apel, C. Lengauer, B. Möller, and C. Kästner. An Algebraic Foundation for Automatic Feature-Based Program Synthesis. SCP, 75(11):1022--1047, 2010.
[6]
P. Avgustinov, A. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An Extensible AspectJ Compiler. In AOSD, pages 87--98. ACM, 2005.
[7]
D. Batory and E. Börger. Modularizing Theorems for Software Product Lines: The Jbook Case Study. JUCS, 14(12):2059--2082, 2008.
[8]
D. Batory, P. Höfner, and J. Kim. Feature Interactions, Products, and Composition. In GPCE, pages 13--22. ACM, 2011.
[9]
D. Batory, J. Liu, and J. Sarvela. Refinements and Multi-Dimensional Separation of Concerns. In ESEC/FSE, pages 48--57. ACM, 2003.
[10]
D. Batory, J. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. TSE, 30(6):355--371, 2004.
[11]
S. Boxleitner, S. Apel, and C. Kästner. Language-Independent Quantification and Weaving for Feature Composition. In SoftComp, pages 45--54. Springer, 2009.
[12]
M. Bravenboer, K. Kalleberg, R. Vermaas, and E. Visser. Stratego/XT 0.17. A Language and Toolset for Program Transformation. SCP, 72(1--2):52--70, 2008.
[13]
M. Bravenboer and E. Visser. Concrete Syntax for Objects: Domain-Specific Language Embedding and Assimilation without Restrictions. In OOPSLA, pages 365--383. ACM, 2004.
[14]
W. Cazzola. Domain-Specific Languages in Few Steps - The Neverlang Approach. In SoftComp, pages 162--177. Springer, 2012.
[15]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2001.
[16]
W. Cook. Object-Oriented Programming Versus Abstract Data Types. In Proc. of REX School/Workshop on Foundations of Object-Oriented Languages, pages 151--178. Springer, 1991.
[17]
K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000.
[18]
B. Delaware, W. Cook, and D. Batory. Fitting the Pieces Together: A Machine-Checked Model of Safe Composition. In FSE, pages 243--252. ACM, 2009.
[19]
B. Delaware, W. Cook, and D. Batory. Product Lines of Theorems. In OOPSLA, pages 595--608. ACM, 2011.
[20]
T. Ekman and G. Hedin. The JastAdd Extensible Java Compiler. In OOPSLA, pages 1--18. ACM, 2007.
[21]
S. Erdweg, T. Rendel, C. Kästner, and K. Ostermann. SugarJ: Library-based Syntactic Language Extensibility. In OOPSLA, pages 391--406. ACM, 2011.
[22]
N. Haldiman, M. Denker, and O. Nierstrasz. Practical, Pluggable Types for a Dynamic Language. Computer Languages, Systems and Structures, 35(1):48--62, 2009.
[23]
Z. Hemel and E. Visser. Declaratively Programming the Mobile Web with Mobl. In OOPSLA, pages 695--712. ACM, 2011.
[24]
P. Hudak. Modular Domain Specific Languages and Tools. In ICSR, pages 134--142. IEEE, 1998.
[25]
C. Kästner, S. Apel, S. ur Rahman, M. Rosenmüller, D. Batory, and G. Saake. On the Impact of the Optional Feature Problem: Analysis and Case Studies. In SPLC, pages 181--190. SEI, 2009.
[26]
L. Kats and E. Visser. The Spoofax Language Workbench: Rules for Declarative Specification of Languages and IDEs. In OOPSLA, pages 444--463. ACM, 2010.
[27]
H. Krahn, B. Rumpe, and S. Völkel. MontiCore: A Framework for Compositional Development of Domain Specific Languages. STTT, 12(5):353--372, 2010.
[28]
S. Krishnamurthi, M. Felleisen, and D. Friedman. Synthesizing Object-Oriented and Functional Design to Promote Re-Use. In ECOOP, pages 91--113. Springer, 1998.
[29]
J. Liu, D. Batory, and C. Lengauer. Feature-Oriented Refactoring of Legacy Applications. In ICSE, pages 112--121. ACM, 2006.
[30]
S. Moser and O. Nierstrasz. The Effect of Object-Oriented Frameworks on Developer Productivity. IEEE Computer, 29(9):45--51, 1996.
[31]
N. Nystrom, M. Clarkson, and A. Myers. Polyglot: An Extensible Compiler Framework for Java. In CC, volume 2622, pages 138--152. Springer, 2003.
[32]
M. Papi, M. Ali, T. Correa, Jr., J. Perkins, and M. Ernst. Practical Pluggable Types for Java. In ISSTA, pages 201--212. ACM, 2008.
[33]
D. Parnas. On the Design and Development of Program Families. TSE, 2(1):1--9, 1976.
[34]
B. Pierce. Types and Programming Languages. MIT Press, 2002.
[35]
J. Reynolds. User-Defined Types and Procedural Data Structures as Complementary Approaches to Data Abstraction. In Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design, pages 13--23. MIT Press, 1994.
[36]
M. Rosenmüller, C. Kästner, N. Siegmund, S. Sunkle, S. Apel, T. Leich, and G. Saake. SQL à la Carte -- Toward Tailor-made Data Management. pages 117--136, 2009.
[37]
C. Simonyi, M. Christerson, and S. Clifford. Intentional Software. In OOPSLA, pages 451--464. ACM, 2006.
[38]
S. Sparks, K. Benner, and C. Faris. Managing Object-Oriented Framework Reuse. IEEE Computer, 29(9):52--61, 1996.
[39]
Guy Steele Jr. Growing a Language. Higher-Order and Symbolic Computation, 12(3):221--236, 1999.
[40]
M. Stonebraker and U. Cetintemel. "One Size Fits All": An Idea Whose Time Has Come and Gone. In ICDE, pages 2--11. IEEE, 2005.
[41]
M. Svahnberg and J. Bosch. Evolution in Software Product Lines: Two Cases. Journal of Software Maintenance, 11(6):391--422, 1999.
[42]
S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe Composition of Product Lines. In GPCE, pages 95--104. ACM, 2007.
[43]
M. Torgersen. The Expression Problem Revisited. In ECOOP, pages 123--143. Springer, 2004.
[44]
M. van den Brand, A. van Deursen, J. Heering, H. de Jong, M. de Jonge, T. Kuipers, P. Klint, L. Moonen, P. Olivier, J. Scheerder, J. Vinju, E. Visser, and J. Visser. The ASF+SDF Meta-environment: A Component-Based Language Development Environment. In CC, volume 2027, pages 365--370. Springer, 2001.

Cited By

View all
  • (2024) : An extensible meta-language with support for exploratory language development Journal of Systems and Software10.1016/j.jss.2024.111979211(111979)Online publication date: May-2024
  • (2023)Systematic Component-Oriented Language Reuse2023 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C59198.2023.00043(166-171)Online publication date: 1-Oct-2023
  • (2022)iCoLa: A Compositional Meta-language with Support for Incremental Language DevelopmentProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567529(202-215)Online publication date: 29-Nov-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
VaMoS '13: Proceedings of the 7th International Workshop on Variability Modelling of Software-Intensive Systems
January 2013
136 pages
ISBN:9781450315418
DOI:10.1145/2430502
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • ICAR, National Research Council, Section of Naples, Italy: ICAR, National Research Council, Section of Naples, Italy
  • CNR: Istituto di Scienza e Tecnologie dell Informazione

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 January 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. feature-oriented programming
  2. language evolution
  3. language families

Qualifiers

  • Research-article

Funding Sources

Conference

VaMoS '13
Sponsor:
  • ICAR, National Research Council, Section of Naples, Italy
  • CNR

Acceptance Rates

Overall Acceptance Rate 66 of 147 submissions, 45%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024) : An extensible meta-language with support for exploratory language development Journal of Systems and Software10.1016/j.jss.2024.111979211(111979)Online publication date: May-2024
  • (2023)Systematic Component-Oriented Language Reuse2023 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C59198.2023.00043(166-171)Online publication date: 1-Oct-2023
  • (2022)iCoLa: A Compositional Meta-language with Support for Incremental Language DevelopmentProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567529(202-215)Online publication date: 29-Nov-2022
  • (2022)Towards a recipe for language decomposition: quality assessment of language product linesEmpirical Software Engineering10.1007/s10664-021-10074-627:4Online publication date: 1-Jul-2022
  • (2022)Object Parsing Expressions for Unplanned, Unmodified, and Incremental Grammar ReuseSoftware Technologies10.1007/978-3-031-11513-4_2(24-40)Online publication date: 18-Jul-2022
  • (2021)Towards the Black-Box Aggregation of Language Components2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C53483.2021.00088(576-585)Online publication date: Oct-2021
  • (2021)Compositional Modelling Languages with Analytics and Construction Infrastructures Based on Object-Oriented Techniques—The MontiCore ApproachComposing Model-Based Analysis Tools10.1007/978-3-030-81915-6_10(217-234)Online publication date: 18-Jul-2021
  • (2020)Neverlang and FeatureIDE just marriedProceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A10.1145/3382025.3414961(1-11)Online publication date: 19-Oct-2020
  • (2020)A compositional framework for systematic modeling language reuseProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems10.1145/3365438.3410934(35-46)Online publication date: 16-Oct-2020
  • (2020)Variability Support in DSL DevelopmentVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_2(33-72)Online publication date: 10-Jul-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media