Damian Frölich

dblp:300/2184 · DBLP profile ↗
← Back
7ranked-venue papers
4as first author
7since 2021 · last 2025
0000-0003-1016-5303ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 4 first-author · 7 since 2021
YearPublicationVenuePosition
2025 P4DDG: Data-Dependent Grammars for Packet Specification and Parsing in P4
abstract
In software-defined networking, the domain-specific language P4 allows developers to program the behavior of networking devices at a comparatively high level of abstraction. A P4 program defines a state machine to parse incoming packets. The parsers are flexible and efficient but may be sensitive to bugs and difficult to maintain. As a possible alternative, data-dependent grammars (DDGs) can describe both packet structure and parser at a higher level of abstraction.
Tommaso Pacciani, Damian Frölich, L. Thomas van Binsbergen, Chrysa Papagianni
GPCE2
2025 Exploratory, Omniscient, and Multiverse Diagnostics in Debuggers for Non-Deterministic Languages
abstract
Debugging non-deterministic programs is inherently difficult as the compound effects of non-deterministic execution steps is hard to predict and gives rise to a (potentially) vast space of reachable program states such that manual exploration of all reachable states is infeasible.
Damian Frölich, Tommaso Pacciani, L. Thomas van Binsbergen
SLE1
2024 On the Soundness of Auto-completion Services for Dynamically Typed Languages
abstract
Giving auto-completion candidates for dynamically typed languages requires complex analysis of the source code, especially when the goal is to ensure that the completion candidates do not introduce bugs. In this paper, we introduce an approach that builds upon abstract interpretation and the scope graph framework to obtain an over-approximation of the name binding seen at run-time. The over-approximation contains enough information to implement auto-completion services such that the given suggestions do not introduce name binding errors. To demonstrate our approach, we compare the suggestions given by our approach with the state of the art completion services on a subset of the Python programming language.
Damian Frölich, L. Thomas van Binsbergen
GPCE1
2024 iCoLa+: An extensible meta-language with support for exploratory language development
abstract
Programming languages providing high-level abstractions can increase a programmers’ productivity and the safety of a program. Language-oriented programming is a paradigm in which domain-specific languages are developed to solve problems within specific domains with (high-level) abstractions relevant to those domains. However, language development involves complex design and engineering processes. These processes can be simplified by reusing (parts of) existing languages and by offering language-parametric tooling. In this paper we present iCoLa+, an extensible meta-language implemented in Haskell supporting incremental (meta-)programming based on reusable components. We demonstrate iCoLa+ through the construction of the Imp, SIMPLE, and MiniJava languages via the composition and restriction of language fragments, demonstrate the variability of our approach through the construction of several languages using a fixed-set of operators, and demonstrate the different forms of extensions possible in iCoLa+.
Damian Frölich, L. Thomas van Binsbergen
J. Syst. Softw.1
2023 Adaptive Structural Operational Semantics
abstract
Software systems evolve more and more in complex and changing environments, often requiring runtime adaptation to best deliver their services. When self-adaptation is the main concern of the system, a manual implementation of the underlying feedback loop and trade-off analysis may be desirable. However, the required expertise and substantial development effort make such implementations prohibitively difficult when it is only a secondary concern for the given domain. In this paper, we present ASOS, a metalanguage abstracting the runtime adaptation concern of a given domain in the behavioral semantics of a domain-specific language (DSL), freeing the language user from implementing it from scratch for each system in the domain. We demonstrate our approach on RobLANG, a procedural DSL for robotics, where we abstract a recurrent energy-saving behavior depending on the context. We provide formal semantics for ASOS and pave the way for checking properties such as determinism, completeness, and termination of the resulting self-adaptable language. We provide first results on the performance of our approach compared to a manual implementation of this self-adaptable behavior. We demonstrate, for RobLANG, that our approach provides suitable abstractions for specifying sound adaptive operational semantics while being more efficient.
Gwendal Jouneaux, Damian Frölich, Olivier Barais, Benoît Combemale, Gurvan Le Guernic, Gunter Mussbacher, L. Thomas van Binsbergen
SLE2
2022 A Language-Parametric Approach to Exploratory Programming Environments
abstract
Exploratory programming is a software development style in which code is a medium for prototyping ideas and solutions, and in which even the end-goal can evolve over time. Exploratory programming is valuable in various contexts such as programming education, data science, and end-user programming. However, there is a lack of appropriate tooling and language design principles to support exploratory programming. This paper presents a host language- and object language-independent protocol for exploratory programming akin to the Language Server Protocol. The protocol serves as a basis to develop novel (or extend existing) programming environments for exploratory programming such as computational notebooks and command-line REPLs. An architecture is presented on top of which prototype environments can be developed with relative ease, because existing (language) components can be reused. Our prototypes demonstrate that the proposed protocol is sufficiently expressive to support exploratory programming scenarios as encountered in literature within the software engineering, human-computer interaction and data science domains.
L. Thomas van Binsbergen, Damian Frölich, Mauricio Verano Merino, Joey Lai, Pierre Jeanjean, Tijs van der Storm, Benoît Combemale, Olivier Barais
SLE2
2022 iCoLa: A Compositional Meta-language with Support for Incremental Language Development
abstract
Programming languages providing high-level abstractions can increase programmers’ productivity and program safety. Language-oriented programming is a paradigm in which domain-specific languages are developed to solve problems within specific domains with (high-level) abstractions relevant to those domains. However, language development involves complex design and engineering processes. These processes can be simplified by reusing (parts of) existing languages and by offering language-parametric tooling.
Damian Frölich, L. Thomas van Binsbergen
SLE1