Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Scrambled Features for Breakfast: Concepts of Agile Language Development

Published: 20 October 2023 Publication History
  • Get Citation Alerts
  • Abstract

    Describing a framework to support simpler development of languages best suited to express the problems and solutions of each particular domain.

    References

    [1]
    Aho, A.V., Lam, M.S., Sethi, R., and Ullman, J.D. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Boston, MA, USA, 2nd ed. (2006).
    [2]
    Basten, B. et al. Modular language implementation in Rascal---Experience report. Science of Computer Programming 114 (Dec. 2015), 7--19.
    [3]
    Bertolotti, F., Cazzola, W., and Favalli, L. On the granularity of linguistic reuse. J. Systems and Software (April 2023).
    [4]
    Cazzola, W. and Favalli, L. Towards a recipe for language decomposition: Quality assessment of language product lines. Empirical Software Engineering 27, 4 (Apr. 2022).
    [5]
    Cazzola, W., Giannini, P., and Shaqiri, A. Formal attributes traceability in modular language development frameworks. Electronic Notes in Theoretical Computer Science 322 (Apr. 2016), 119--134.
    [6]
    Cazzola, W. and Olivares, D.M. Gradually learning programming supported by a growable programming language. IEEE Transactions on Emerging Topics in Computing 4, 3 (Sept. 2016), 404--415.
    [7]
    Cazzola, W. and Shaqiri, A. Modularity and optimization in synergy. In Proceedings of the 15th Intern. Conf. on Modularity, D. Bator (Ed.), ACM (March 2016), 70--81.
    [8]
    Cazzola, W. and Vacchi, E. On the incremental growth and shrinkage of LR Goto-Graphs. Acta Informatica 51, 7 (Oct. 2014), 419--447.
    [9]
    Cazzola, W. and Vacchi, E. Language components for modular DSLs using traits. Computer Languages, Systems & Structures 45 (Apr. 2016), 16--34.
    [10]
    Combemale, B., Barais, O., and Wortmann, A. Language engineering with the GEMOC Studio. In Proceedings of the Intern. Conf. on Software Architecture Workshop, IEEE (Apr. 2017), 189--191.
    [11]
    Degueule, T. et al. Melange: A meta-language for modular and reusable development of DSLs. In Proceedings of the 8th Intern. Conf. on Software Language Engineering, ACM (Oct. 2015), 25--36.
    [12]
    Dijkstra, E.W. The humble programmer. Communications of the ACM 15, 10 (Oct. 1972), 859--866.
    [13]
    Dit, B. et al. Feature location in source code: A taxonomy and survey. J. of Software: Evolution and Process 25, 1 (Jan. 2013), 53--95.
    [14]
    Felleisen, M. et al. A programmable programming language. Communications of the ACM 61, 3 (March 2018), 62--71.
    [15]
    Felleisen, M. et al. The Racket Manifesto. In Proceedings of the 1st Summit on Advances in Programming Languages and Informatics 32, S. Krishnamurthi and G. Morrisett, (Eds.), May 2015, 113--128.
    [16]
    Findler, R.B. and Flatt, M. Modular object-oriented programming with units and mixins. In Proceedings of the 3rd Intern. Conf. on Functional Programming, M. Felleisen, P. Hudak, and C. Queinnec, (Eds.), ACM (Sept. 1998), 94--104.
    [17]
    Fowler., M. Language workbenches: The killer-app for domain specific languages? Martin.Fowler.com (May 2005).
    [18]
    Graham, P. Beating the averages. http://www.paulgraham.com/avg.html, (Apr. 2003).
    [19]
    Grenning, J. Planning poker or how to avoid analysis paralysis while release planning. Hawthorn Woods: Renaissance Software Consulting 3, (Aug. 2002), 22--23.
    [20]
    Henriques, P.R. et al. Automatic generation of language-based tools using the LISA system. IEEE Proceedings---Software 152, 2 (Apr. 2005), 54--69.
    [21]
    Iung, A. et al. Systematic mapping study on domain-specific language development tools. Empirical Software Engineering 25, 5 (Sept. 2020), 4205--4249.
    [22]
    Iverson, K.E. Notation as a tool of thought. Communications of the ACM 23, 8 (Aug. 1980), 444--465.
    [23]
    Jayatilleke, S. and Lai, R. A systematic review of requirements change management. Information and Sofware Technology 93, (Jan. 2018), 163--185.
    [24]
    Johnson, S.C. YACC: Yet another compiler-compiler. Technical Report, (CS-TR-32), Bell Laboratories, Hill, NJ, USA (July 1975).
    [25]
    Krahn, H., Rumpe, B., and Völkel, S. MontiCore: A framework for compositional development of domain specific languages. Intern. J. on Software Tools for Technology Transfer 12, 5 (Sept. 2010), 353--372.
    [26]
    Kühn, T. and Cazzola, W. Apples and oranges: Comparing top-down and bottom-up language product lines. In Proceedings of the 20th Intern. Software Product Line Conf., R. Rabiser and B. Xie (Eds.), ACM (Sept. 2016), 50--59.
    [27]
    Kühn, T., Cazzola, W., Giampietro, N.P., and Poggi, M. Piggyback IDE support for language product lines. In Proceedings of the 23rd Intern. Software Product Line Conf., ACM (Sept. 2019), 131--142.
    [28]
    Liang, S., Hudak, P., and Jones, M. Monad transformers and modular interpreters. In Proceedings of the 22nd ACM Symp. on Principles of Programming Languages, R.K. Cytron and P. Lee (Eds.), ACM (Jan. 1995), 333--343.
    [29]
    Méndez-Acuña, D. et al. Leveraging software product lines engineering in the development of external DSLs: A systematic literature review. Computer Languages, Systems & Structures 46 (Nov. 2016), 206--235.
    [30]
    Mosses, P.D. Software meta-language engineering and CBS. J. of Computer Languages 50 (Feb. 2019), 39--48.
    [31]
    Parr, T.J. and Quong, R.W. ANTLR: A predicated-LL(k) parser generator. Software---Practice and Experience 25, 7 (July 1995), 789--810.
    [32]
    Prehofer, C. Feature-oriented programming: A fresh look at objects. In Proceedings of the 11th European Conf. on Object-Oriented Programming, M. Akşit and S. Matsuoka (Eds.), Springer (June 1997), 419--443.
    [33]
    Rubin, J. and Chechik, M. A survey of feature location techniques. Domain Engineering: Product Lines, Languages and Conceptual Models, I. Reinhartz-Berger, A. Sturm, T. Clark, S. Cohen, and J. Bettin, (Eds.), Springer (2013), 29--58.
    [34]
    Saffer, D. Designing for Interaction: Creating Innovative Applications and Devices. New Riders (2010).
    [35]
    Steele, G.L. Building interpreters by composing monads. In Proceedings of the 21st Symp. on Principles of Programming Languages, H-J. Boehm, B. Lang, and D. Yellin (Eds.), ACM (Jan. 1994), 472--492.
    [36]
    Vacchi E. and Cazzola, W. Neverlang: A framework for feature-oriented language development. Computer Languages, Systems & Structures 43, 3 (Oct. 2015), 1--40.
    [37]
    Van Wyk, E. et al. Silver: An extensible attribute grammar system. Electronic Notes in Theoretical Computer Science 203, 2 (Apr. 2008), 103--116.
    [38]
    Vasudevan, N. and Tratt, L. Comparative study of DSL tools. Electronic Notes in Theoretical Computer Science 264, 5 (July 2011), 103--121.
    [39]
    Völter, M. and Pech, V. Language modularity with the MPS Language Workbench. In Proceedings of the 34th Intern. Conf. on Software Engineering, IEEE (June 2012), 1449--1450.
    [40]
    Wachsmuth, G.H., Konat, G.D.P, and Visser, E. Language design with the Spoofax Language Workbench. IEEE Software 31, 5 (2014), 35--43.

    Cited By

    View all
    • (2023)Exceptions all Over the Shop: Modular, Customizable, Language-Independent Exception Handling LayerProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623513(1-14)Online publication date: 23-Oct-2023

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Communications of the ACM
    Communications of the ACM  Volume 66, Issue 11
    November 2023
    94 pages
    ISSN:0001-0782
    EISSN:1557-7317
    DOI:10.1145/3629727
    • Editor:
    • James Larus
    Issue’s Table of Contents
    Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 20 October 2023
    Published in CACM Volume 66, Issue 11

    Check for updates

    Qualifiers

    • Research-article

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7,762
    • Downloads (Last 6 weeks)58
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Exceptions all Over the Shop: Modular, Customizable, Language-Independent Exception Handling LayerProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623513(1-14)Online publication date: 23-Oct-2023

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Digital Edition

    View this article in digital edition.

    Digital Edition

    Magazine Site

    View this article on the magazine site (external)

    Magazine Site

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media