skip to main content
10.1145/2934466.2934470acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Apples and oranges: comparing top-down and bottom-up language product lines

Published: 16 September 2016 Publication History

Abstract

Over the past decade language development tools have been significantly improved. This permitted both practitioners and researchers to design a wide variety of domain-specific languages (DSL) and extensions to programming languages. Moreover, multiple researchers have combined different language variants to form families of DSLs as well as programming languages. Unfortunately, current language development tools cannot directly support the development of these families. To overcome this limitation, researchers have recently applied ideas from software product lines (SPL) to create product lines of compilers/interpreters for language families, denoted language product lines (LPL). Similar to SPLs, however, these product lines can be created either using a top-down or a bottom-up approach. Yet, there exist no case study comparing the suitability of both approaches to the development of LPLs, making it unclear how language development tools should evolve. Accordingly, this paper compares both feature modeling approaches by applying them to the development of an LPL for the family of role-based programming languages and discussing their applicability, feasibility and overall suitability for the development of LPLs. Although one might argue that this compares apples and oranges, we believe that this case still provides crucial insights into the requirements, assumptions, and challenges of each approach.

References

[1]
M. Appeltauer, R. Hirschfeld, M. Haupt, J.Lincke, and M. Perscheid. A Comparison of Context-Oriented Programming Languages. In COP'09, Genoa, Italy, July 2009. ACM.
[2]
E. Arnaudo, M.Baldoni, G. Boella, V. Genovese, and R. Grenna. An Implementation of Roles as Affordances: PowerJava. In WOA'07, pp. 8--13, Genova, Italy, Sept. 2007. Seneca Edizioni.
[3]
M. Baldoni, G. Boella, and L. van der Torre. PowerJava: Ontologically Founded Roles in Object Oriented Programming Languages. In SAC'06, pp. 1414--1418, Dijon, France, Apr.2006. ACM.
[4]
M. Baldoni, G.Boella, and L. van der Torre. Roles as a Coordination Construct: Introducing powerJava. ENTCS, 150(1):9--29, Mar. 2006.
[5]
S. Balzer. Rumer: a Programming Language and Modular Verification Technique Based on Relationships. PhD thesis, ETH Zürich, Zürich, Switzerland, 2011.
[6]
S. Balzer, T.R. Gross, and P. Eugster. A Relational Model of Object Collaborations and Its Use in Reasoning About Relationships. In E. Ernst, editor, ECOOP'07, LNCS 4609, pp. 323--346, Aug. 2007.
[7]
F.S. Barbosa and A. Aguiar. Modeling and Programming with Roles: Introducing JavaStage. In New Trends in Software Methodologies, Tools and Techniques, pp. 124--145. IOS Press, 2012.
[8]
W. Cazzola. Domain-Specific Languages in Few Steps: The Neverlang Approach. In SC'12, LNCS 7306, pp. 162--177, Prague, Czech Republic, May 2012.
[9]
W. Cazzola and D. M. Olivares. Gradually Learning Programming Supported by a Growable Programming Language. IEEE Transactions on Emerging Topics in Computing, 4(1), Jan. 2016.
[10]
W. Cazzola and E. Vacchi. Neverlang 2: Componentised Language Development for the JVM. In SC'13, LNCS 8088, pp. 17--32, Budapest, Hungary, June 2013.
[11]
M. V. Cengarle, H. Grönniger, and B. Rumpe. Variability within Modeling Language Definitions. In MoDELS'09, LNCS 5795, pp. 670--684, Denver, Oct. 2009.
[12]
L.Chen and M.A. Babar. A Systematic Review of Evaluation of Variability Management Approaches in Software Product Lines. Journal of Information and Software Technology, 53(4):344--362, Apr. 2011.
[13]
S. Erdweg, T. van der Storm, M.Völter, L. Tratt, R. Bosman, W.R. Cook, A. Gerritsen, A. Hulshout, A. Kelly, G. Konat, P.J. Molina, M. Palatnik, R. Pohjonen, E. Schindler, K. Schindler, R. Solmi, V. Vergu, E. Visser, K. van del Vlist, G. Wachsmuth, and J. van der Woning. Evaluating and Comparing Language Workbenches. Comp. Lang., Syst. and Str., 44:24--47, Dec. 2015.
[14]
V. Genovese. A Meta-Model for Roles: Introducing Sessions. In ROLES'07, Berlin, Germany, July 2007.
[15]
D. Ghosh. DSL for the Uninitiated. Commun. ACM, 54(7):44--50, July 2011.
[16]
K.B. Graversen and K. Østerbye. Implementation of a Role Language for Object-Specific Dynamic Separation of Concerns. In SPLAT'03, Boston, USA, Mar. 2003.
[17]
D. Harkes and E. Visser. Unifying and Generalizing Relations in Role-Based Data Modeling and Navigation. In SLE'07, LNCS 8706, pp. 241--260, Sept. 2014.
[18]
Ø. Haugen, B. Møller-Pedersen, J. Oldevik, G.K. Olsen, and A. Svendsen. Adding Standardized Variability to Domain Specific Languages. In SPLC'08, pp. 139--148, Limerick, Ireland, Sept. 2008. IEEE.
[19]
C. He, Z. Nie, B. Li, and L. Cao. Rava: Designing a Java Extension with Dynamic Object Roles. In ECBS'06, pp. 459--464, Potsdam, Germany, Mar. 2006. IEEE.
[20]
P.R. Henriques, M.J. Varanda Pereira, M. Mernik, M. Lenič, J. Gray, and H. Wu. Automatic Generation of Language-Based Tools Using the LISA System. IEE Proceedings --- Software, 152(2):54--69, Apr. 2005.
[21]
S. Herrmann. A Precise Model for Contextual Roles: The Programming Language ObjectTeams/Java. Applied Ontologies---Roles an Interdisciplinary Perspective, 2(2):181--207, Apr. 2007.
[22]
A. Hubaux, A. Classen, M. Mendonça, and P. Heymans. A Preliminary Review on the Application of Feature Diagrams in Practice. In VaMoS'10, pp. 53--59, Jan. 2010.
[23]
T. Kamina and T. Tamai. Towards Safe and Flexible Object-Adaptation. In COP'09, Genova, July 2009.
[24]
K.C. Kang, S.G. Cohen, J.A. Hess, W.E. Novak, and A.S. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, CMU, USA, Nov.1990.
[25]
L.C.L. Kats and E. Visser. The Spoofax Language Workbench. In OOPSLA'10, pp. 444--463, Oct. 2010.
[26]
A. Klarl, L. Cichella, and R. Hennicker. From Helena Ensemble Specifications to Executable Code. In FACS'14, LNCS 8997, pp. 183--190, Sept. 2014.
[27]
H. Krahn, B. Rumpe, and S. Völkel. MontiCore: A Framework for Compositional Development of Domain Specific Languages. Journal on Software Tools for Technology Transfer, 12(5):353--372, Sept. 2010.
[28]
C.W. Krueger. Towards a Taxonomy for SW Product Lines. In PFE'03, LNCS 3014, pp. 323--331, Nov. 2003.
[29]
T. Kühn, S. Böhme, S. Götz, and U. Aßmann. A Combined Formal Model for Relational Context-Dependent Roles. In SLE'15, pp. 113--124. ACM, 2015.
[30]
T. Kühn, W. Cazzola, and D.M. Olivares. Choosy and Picky: Configuration of Language Product Lines. In SPLC'15, pp. 71--80, Nashville, USA, July 2015. ACM.
[31]
T. Kühn, M. Leuthäuser, S. Götz, C. Seidl, and U. Aßmann. A Metamodel Family for Role-Based Modeling and Programming Languages. In SLE'14, LNCS 8706, pp. 141--160, Västerås, Sweden, Sept. 2014. Springer.
[32]
M. Leuthäuser and U. Aßmann. Enabling View-Based Programming with SCROLL. In MORSE/VAO'15, pp. 25--33, L'Aquila, Italy, July 2015.
[33]
J. Liebig, R. Daniel, and S. Apel. Feature-Oriented Language Families: A Case Study. In VaMoS'13, Jan. 2013.
[34]
K. Ng, M. Warren, P. Golde, and A. Hejlberg. The Roslyn Project: Exposing the C# and VB Compiler's Code Analysis. White paper, Microsoft, Oct. 2011.
[35]
K. Pohl, K. Böckle, and F.J. van der Linden. Software Product Line Engineering, Springer, 2005.
[36]
K. Pohl and A. Metzger. Variability Management in Software Product Line Engineering. In ICSE'06, pp. 1049--1050, Shanghai, China, May 2006. ACM.
[37]
M. Pradel and M. Odersky. Scala Roles: Reusable Object Collaborations in a Library. In ICSOFT'08, CCIS 47, pp. 23--36, Porto, Portugal, July 2008. Springer.
[38]
C. Seidl, I. Schaefer, and U. Aßmann. DeltaEcore---A Model-Based Delta Language Generation Framework. In Modellierung 2014, LNI 225, pp. 81--96, Wien, Austria, Mar. 2014. Springer.
[39]
F. Steimann. On the Representation of Roles in Object-Oriented and Conceptual Modelling. Data and Knowledge Engineering, 35(1):83--106, Oct. 2000.
[40]
T. Thüm, C.Kästner, F. Benduhn, J. Meinicke, G. Saake, and T. Leich. FeatureIDE: An Extensible Framework for Feature-Oriented Software Development. Science of Computer Programming, 79(1):70--85, Jan. 2014.
[41]
E. Vacchi and W. Cazzola. Neverlang: A Framework for Feature-Oriented Language Development. Comp. Lang., Syst. & Struct., 43(3):1--40, Oct. 2015.
[42]
E. Vacchi, W. Cazzola, B. Combemale, and M. Acher. Automating Variability Model Inference for Component-Based Language Implementations. In SPLC'14, pp. 167--176, Florence, Italy, Sept. 2014. ACM.
[43]
E. Van Wyk, D. Bodin, J. Gao, and L. Krishnan. Silver: an Extensible Attribute Grammar System. Science of Computer Programming, 75(1-2):39--54, Jan. 2010.
[44]
C. Wende, N. Thieme, and S. Zschaler. A Role-Based Approach towards Modular Language Engineering. In SLE'09, LNCS 5969, pp. 254--273, Denver, Oct. 2009.
[45]
J. White, J.H. Hill, J. Gray, S. Tambe, A. Gokhale, and D.C. Schmidt. Improving Domain-specific Language Reuse with Software Product-Line Configuration Techniques. IEEE Software, 26(4):47--53, July-Aug. 2009.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '16: Proceedings of the 20th International Systems and Software Product Line Conference
September 2016
367 pages
ISBN:9781450340502
DOI:10.1145/2934466
  • General Chair:
  • Hong Mei
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

  • Huawei Technologies Co. Ltd.: Huawei Technologies Co. Ltd.
  • Key Laboratory of High Confidence Software Technologies: Key Laboratory of High Confidence Software Technologies, Ministry of Education
  • DC Holdings: Digital China Holdings Limited

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 September 2016

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

SPLC '16
Sponsor:
  • Huawei Technologies Co. Ltd.
  • Key Laboratory of High Confidence Software Technologies
  • DC Holdings

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Scrambled Features for Breakfast: Concepts of Agile Language DevelopmentCommunications of the ACM10.1145/359621766:11(50-60)Online publication date: 20-Oct-2023
  • (2022)Effects of variability in models: a family of experimentsEmpirical Software Engineering10.1007/s10664-021-10112-327:3Online publication date: 1-May-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
  • (2021)Product-lining the elinvar wealthtech microservice platformProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume B10.1145/3461002.3473947(60-68)Online publication date: 6-Sep-2021
  • (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
  • (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)Variable Language ModelsVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_3(73-136)Online publication date: 10-Jul-2020
  • (2020)DSL as Variable SoftwareVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_1(1-31)Online publication date: 10-Jul-2020
  • (2019)Piggyback IDE Support for Language Product LinesProceedings of the 23rd International Systems and Software Product Line Conference - Volume A10.1145/3336294.3336301(131-142)Online publication date: 9-Sep-2019
  • (2018)Reverse engineering language product lines from existing DSL variantsProceedings of the 22nd International Systems and Software Product Line Conference - Volume 110.1145/3233027.3236394(248-248)Online publication date: 10-Sep-2018
  • 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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media