skip to main content
10.1145/3579027.3608977acmconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article
Open Access

Deltas for Functional Programs with Algebraic Data Types

Published:28 August 2023Publication History

ABSTRACT

The development of feature-oriented programming (FOP) and of (its generalization) delta-oriented programming (DOP) has focused primarily on SPLs of class-based object oriented programs. In this paper, we introduce delta-oriented SPLs of functional programs with algebraic data types (ADTs). To pave the way towards SPLs of multi-paradigm programs, we tailor our presentation to the functional sublanguage of the multi-paradigm modeling language ABS, which already features DOP support for its class-based object-oriented sublanguage. Our main contributions are: (i) we motivate and illustrate our proposal by an example from an industrial modeling scenario; (ii) we formalize delta-oriented SPLs for functional programs with ADTs in terms of a foundational calculus; (iii) we define family-based analyses to check whether an SPL satisfies certain well-formedness conditions and whether all variants can be generated and are well-typed; and (iv) we briefly outline how, in the context of the toolchain of ABS, the proposed delta-oriented constructs and analyses for functional programs can be integrated with their counterparts for object-oriented programs.

References

  1. Don Batory, Jacob Neal Sarvela, and Axel Rauschmayer. 2004. Scaling Step-Wise Refinement. IEEE Transactions on Software Engineering 30 (2004), 355--371. https://doi.org/10.1109/TSE.2004.23Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Lorenzo Bettini, Ferruccio Damiani, and Ina Schaefer. 2013. Compositional type checking of delta-oriented software product lines. Acta Informatica 50, 2 (2013), 77--122. https://doi.org/10.1007/s00236-012-0173-zGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  3. Sheng Chen, Martin Erwig, and Eric Walkingshaw. 2012. An Error-Tolerant Type System for Variational Lambda Calculus (ICFP '12). Association for Computing Machinery, New York, NY, USA, 29--40. https://doi.org/10.1145/2364527.2364535Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Sheng Chen, Martin Erwig, and Eric Walkingshaw. 2014. Extending Type Inference to Variational Programs. ACM Trans. Program. Lang. Syst. 36, 1, Article 1 (mar 2014), 54 pages. https://doi.org/10.1145/2518190Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dave Clarke, Radu Muschevici, José Proença, Ina Schaefer, and Rudolf Schlatte. 2010. Variability Modelling in the ABS Language. In FMCO (LNCS, Vol. 6957). Springer, 204--224. https://doi.org/10.1007/978-3-642-25271-6_11Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Luis Damas and Robin Milner. 1982. Principal Type-Schemes for Functional Programs. In Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Albuquerque, New Mexico) (POPL '82). Association for Computing Machinery, New York, NY, USA, 207--212. https://doi.org/10.1145/582153.582176Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, Michael Lienhardt, and Luca Paolini. 2023. Variability modules. Journal of Systems and Software 195 (2023), 111510. https://doi.org/10.1016/j.jss.2022.111510Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Ferruccio Damiani and Michael Lienhardt. 2016. On Type Checking Delta-Oriented Product Lines. In Integrated Formal Methods - 12th International Conference, IFM 2016, Reykjavik, Iceland, June 1-5, 2016, Proceedings (LNCS, Vol. 9681). Springer, 47--62. https://doi.org/10.1007/978-3-319-33693-0_4Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ferruccio Damiani, Michael Lienhardt, Bruno Maugars, and Bertrand Michel. 2022. Towards a Modular and Variability-Aware Aerodynamic Simulator. In The Logic of Software. A Tasting Menu of Formal Methods (Lecture Notes in Computer Science, Vol. 13360). Springer, 147--172.Google ScholarGoogle ScholarCross RefCross Ref
  10. Benjamin Delaware, William R. Cook, and Don Batory. 2009. Fitting the Pieces Together: A Machine-checked Model of Safe Composition. In ESEC/FSE (Amsterdam, The Netherlands). ACM, 243--252. https://doi.org/10.1145/1595696.1595733Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Richard A. Eisenberg, Joachim Breitner, and Simon Peyton Jones. 2018. Type Variables in Patterns. In Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell (St. Louis, MO, USA) (Haskell 2018). Association for Computing Machinery, New York, NY, USA, 94--105. https://doi.org/10.1145/3242744.3242753Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Martin Erwig and Eric Walkingshaw. 2011. The Choice Calculus: A Representation for Software Variation. ACM Trans. Softw. Eng. Methodol. 21, 1, Article 6 (dec 2011), 27 pages. https://doi.org/10.1145/2063239.2063245Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Igarashi, B. Pierce, and P. Wadler. 2001. Featherweight Java: A Minimal Core Calculus for Java and GJ. ACM TOPLAS 23, 3 (2001), 396--450. https://doi.org/10.1145/503502.503505Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Einar Broch Johnsen, Reiner Hähnle, Jan Schäfer, Rudolf Schlatte, and Martin Steffen. 2010. ABS: A Core Language for Abstract Behavioral Specification. In Formal Methods for Components and Objects - 9th International Symposium, FMCO 2010, Graz, Austria, November 29 - December 1, 2010. Revised Papers. 142--164.Google ScholarGoogle Scholar
  15. Eduard Kamburjan, Reiner Hähnle, and Sebastian Schön. 2018. Formal Modeling and Analysis of Railway Operations with Active Objects. Science of Computer Programming 166 (Nov. 2018), 167--193. https://doi.org/10.1016/j.scico.2018.07.001Google ScholarGoogle Scholar
  16. Michael Lienhardt and Dave Clarke. 2012. Conflict Detection in Delta-Oriented Programming. In ISoLA 2012, Heraklion, Crete, Greece, October 15-18, 2012, Proceedings, Part I (LNCS, Vol. 7609). Springer, 178--192. https://doi.org/10.1007/978-3-642-34026-0_14Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Reza Mauliadi, Maya R. A Setyautami, Iis Afriyanti, and Ade Azurat. 2017. A platform for charities system generation with SPL approach. In Proc. Intl. Conf. on Information Technology Systems and Innovation (ICITSI) (Bandung, Indonesia). IEEE, New York, NY, USA, 108--113. https://doi.org/10.1109/ICITSI.2017.8267927Google ScholarGoogle ScholarCross RefCross Ref
  18. Benjamin C. Pierce. 2002. Types and programming languages. MIT Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ina Schaefer, Lorenzo Bettini, Viviana Bono, Ferruccio Damiani, and Nico Tanzarella. 2010. Delta-Oriented Programming of Software Product Lines. In Software Product Lines: Going Beyond (SPLC 2010) (LNCS, Vol. 6287). 77--91. https://doi.org/10.1007/978-3-642-15579-6_6Google ScholarGoogle ScholarCross RefCross Ref
  20. Ina Schaefer, Rick Rabiser, Dave Clarke, Lorenzo Bettini, David Benavides, Goetz Botterweck, Animesh Pathak, Salvador Trujillo, and Karina Villela. 2012. Software diversity. International Journal on Software Tools for Technology Transfer 14, 5 (2012), 477--495. https://doi.org/10.1007/s10009-012-0253-yGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  21. Yudai Tanabe, Luthfan Anshar Lubis, Tomoyuki Aotani, and Hidehiko Masuhara. 2022. A Functional Programming Language with Versions. Art, Science, and Engineering of Programming 6, 1 (2022). https://doi.org/10.22152/programming-journal.org/2022/6/5Google ScholarGoogle Scholar
  22. Sahil Thaker, Don Batory, David Kitchin, and William Cook. 2007. Safe Composition of Product Lines. In Proceedings of the 6th International Conference on Generative Programming and Component Engineering (Salzburg, Austria) (GPCE '07). ACM, New York, NY, USA, 95--104. https://doi.org/10.1145/1289971.1289989Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Thomas Thüm, Sven Apel, Christian Kästner, Ina Schaefer, and Gunter Saake. 2014. A Classification and Survey of Analysis Strategies for Software Product Lines. ACM Comput. Surv. 47, 1, Article 6 (2014), 45 pages. https://doi.org/10.1145/2580950Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Peter Y. H. Wong, Nikolay Diakov, and Ina Schaefer. 2012. Modelling Distributed Adaptable Object Oriented Systems using HATS Approach: A Fredhopper Case Study (invited paper). In 2nd Intl. Conf. on Formal Verification of Object-Oriented Software, Torino, Italy (LNCS, Vol. 7421), Bernhard Beckert, Ferruccio Damiani, and Dilian Gurov (Eds.). Springer, 49--66. https://doi.org/10.1007/978-3-642-31762-0_5Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Deltas for Functional Programs with Algebraic Data Types

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SPLC '23: Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A
        August 2023
        305 pages
        ISBN:9798400700910
        DOI:10.1145/3579027

        Copyright © 2023 ACM

        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 the author(s) 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].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 28 August 2023

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate167of463submissions,36%
      • Article Metrics

        • Downloads (Last 12 months)100
        • Downloads (Last 6 weeks)11

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader