Call for Papers (source, 31 taggings)
Software language engineering (SLE) is the discipline of engineering languages and their tools required for the creation of software. It abstracts from the differences between programming languagesT3D, modeling languages, and other software languages, and emphasizes the engineering facet of the creation of such languages, that is, the establishment of the scientific methods and practices that enable the best results. While SLE is driven by its meta-circular character (software languages are engineered using software languages), SLE is not self-satisfying: its scope extends to the engineering of languages for all and everything. A total of eleven submissions were accepted in this special issue after a thorough peer review process.
Introduction
With the ubiquity of computers, software has become the dominant intellectual asset of our time. In turn, software depends on software languages, namely the languages in which it is written, the languages used to describe its environment, and the languages driving its development process. Given that everything depends on software and that software depends on software languages, it seems fair to say that for many years to come, everything will depend on software languages.
Software language engineering (SLE) is the discipline of engineering languages and supporting tools required for the creation of software. It abstracts from the differences between programming languages, modeling languages, and other software languages and emphasizes the engineering facet of the creation of such languages, that is, the establishment of the scientific methods and practices that enable the best results. While SLE is driven by its meta-circular character (software languages are engineered using software languages), SLE is not self-satisfying: its scope extends to the engineering of languages for all and everything.
This special issue brings together eleven papers representing the latest research on Software Language Engineering.
Selected papers for this special issue
The special issue received 24 submissions. As the final result of a thorough peer review process, 11 papers were selected for this special issue.
- “The eXchange Calculus (XC): A functional programming language designT1A for distributed collective systems” (Audrito et al., 2024) by G. Audrito et al. discusses the eXchange Calculus, which is a declarative approach to programming distributed collective systems, combining computation, communication, and state into a single construct called an exchange. It is implemented as a DSLT3C in Scala and C++, with different trade-offs in terms of productivityT5F and platformT4D targeting.
- “Supporting reusableT1E model migrationT2B with Edelta” (Bettini et al., 2024) by L. Bettini et al. introduces migration patterns as a reusable and generalizable solution for model migration in the context of Model-driven Engineering. The approach builds on and extends the Edelta framework to support this reuseT1E systematically.
- “Collection skeletons: Declarative abstractions for data collections” (Franke et al., 2024) by B. Franke et al. introduces collection skeletons, a declarative C++ framework that improves performanceT5F and flexibilityT5H by letting developers specify collection properties instead of concrete types.
- “iCoLa+: An extensible meta-languageT3A with support for exploratory language development” (Frölich and van Binsbergen, 2024) by D. Frölich and L. T. van Binsbergen presents iCoLa+, an extensible Haskell-based meta-language for building domain-specific languagesT3C through reusableT1E, composableT1D language fragments.
- “A language-parametric test coverageT5C framework for executable domain-specific languagesT3C” (Khorram et al., 2024) by F. Khorram et al. introduces a language-parametric framework for test coverage in executable DSLs, enabling reusable model and branch coverage metrics along with fault localization across different xDSLs.
- “Translating meaning representations to behavioralT1C interface specificationsT3F” (Leong and Barbosa, 2024) by I. T. Leong and E. Barbosa proposes and evaluates an approach and a supporting compiler for translating meaning representations, generated from Java programs with method-level comments, into the Java Modeling LanguageT5D.
- “Zipper-based embeddingT1D of strategic attribute grammars” (Macedo et al., 2024) by J. N. Macedo et al. presents a memoized zipper-based embedding of strategic attribute grammars, combining the expressiveness of strategic term rewritingT4B and attribute grammars.
- “Spectrum-based rule- and item-level localization of faultsT5C in context-free grammars” (Raselimo and Fischer, 2024) by M. Raselimo and B. Fischer describes and evaluatesT5E spectrum-based methods aimed at finding faultsT5C in context-free grammars.
- “Property probes: Live exploration of program analysis results” (Risberg Alaküla et al., 2024) by A. Risberg Alaküla et al. presents property probes, an interactive mechanism for exploring program analysis results tied to source code, supported by the CodeProber tool with negligible overhead even on large projects.
- “Grammar-based test suiteT5C construction using coverage-directed algorithms over LR-graphs” (Rossouw and Fischer, 2024) by C. Rossouw and B. Fischer presents an algorithm that generates grammar-based test suitesT4C by covering edges in a labeled directed graph derived from an LR-automatonT5D, rather than using traditional derivation-based coverage.
- “Supporting meta-model-based language evolutionT2B and rapid prototyping with automated grammar transformationT3B” (Zhang et al., 2024) by Zhang et al. presents GrammarTransformer, an approach for automatically transforming grammars during the evolutionT2B of textual DSLs in model-driven engineering. It relies on a catalog of configurable transformation rules to reduce manual effortT5H when adapting grammars to changes in a separately maintained meta-model.
Acknowledgments
We thank all authors who submitted their work to this special issue. We would also like to thank our reviewers for their efforts and high-quality reviews, which greatly contributed to improving the selected papers. Finally, we express our gratitude to the JSS editorial office, specifically Raffaela Mirandola and Laurence Duchien for their support.
List of Papers (11, source)
- The eXchange Calculus (XC): A functional programming language design for distributed collective systems (Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, Mirko Viroli)
- Supporting reusable model migration with Edelta (Lorenzo Bettini, Amleto Di Salle, Ludovico Iovino, Alfonso Pierantonio)
- Collection skeletons: Declarative abstractions for data collections (Björn Franke, Zhibo Li, John Magnus Morton, Michel Steuwer)
- iCoLa+: An extensible meta-language with support for exploratory language development (Damian Frölich, L. Thomas van Binsbergen)
- A language-parametric test coverage framework for executable domain-specific languages (Faezeh Khorram, Erwan Bousse, Antonio Garmendía, Jean-Marie Mottu, Gerson Sunyé, Manuel Wimmer)
- Translating meaning representations to behavioural interface specifications (Iat Tou Leong, Raul Barbosa)
- Zipper-based embedding of strategic attribute grammars (José Nuno Macedo, Emanuel Rodrigues, Marcos Viera, João Saraiva)
- Spectrum-based rule- and item-level localization of faults in context-free grammars (Moeketsi Raselimo, Bernd Fischer)
- Property probes: Live exploration of program analysis results (Anton Risberg Alaküla, Görel Hedin, Niklas Fors, Adrian Pop)
- Grammar-based test suite construction using coverage-directed algorithms over LR-graphs (Christoff Rossouw, Bernd Fischer)
- Supporting meta-model-based language evolution and rapid prototyping with automated grammar transformation (Weixing Zhang, Jörg Holtmann, Daniel Strüber, Regina Hebig, Jan-Philipp Steghöfer)
Organisers