L. Thomas van Binsbergen

dblp:156/1261 · DBLP profile ↗
← Back
21ranked-venue papers
5as first author
14since 2021 · last 2025
0000-0001-8113-2221ORCID · verified

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

Software engineering, systems software and programming languages · 18 · 5 first-author · 11 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 2 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021Computer networks · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1 · 1 since 2021
YearPublicationVenuePosition
2025 A Stable Model Semantics for eFLINT Norm Specifications and Model Checking Scenarios
abstract
Since its introduction at GPCE2020, the eFLINT norm specification language has been used in academic and industrial applications to specify and automate compliance for various norms, such as privacy regulations and data processing agreements. The eFLINT interpreter has been used to automate the analysis of real-time or historical cases by computing logical consequences and reporting normative violations.
Christopher A. Esterhuyse, Tim Müller, L. Thomas van Binsbergen
GPCE3
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
GPCE3
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
SLE3
2024 JustAct: Actions Universally Justified by Partial Dynamic Policies
Christopher A. Esterhuyse, Tim Müller, L. Thomas van Binsbergen
FORTE3
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
GPCE2
2024 Cooperative Specification via Composition Control
abstract
High-level, declarative specification languages are typically highly modular: specifications are comprised of fragments that are themselves meaningful. As such, complex specifications are built from incrementally composed fragments. In a cooperative specification, different fragments are contributed by different agents, usually capturing requirements on different facets of the system. For example, legal regulators and system administrators cooperate to specify the behaviour of a data exchange system. In practice, cooperative specification is difficult, as different contributors' requirements are difficult to elicit, express, and compose.
Christopher A. Esterhuyse, L. Thomas van Binsbergen
SLE2
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.2
2023 Towards a Purpose-Based Access Control Model Derived from the Purpose Limitation Principle
abstract
The purpose limitation principle is a GDPR cornerstone that aims to minimize data processing risks by limiting instances of personal data access and usage. We model purpose as an action or sequences of actions and formalize action relationships to derive purpose-based permissions. Based on these permissions, we introduce a novel purpose-based access control model with a purpose matching algorithm illustrated with a healthcare research use case.
Milen G. Kebede, L. Thomas van Binsbergen, Tom M. van Engers, Dannis G. van Vuurden
JURIX2
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
SLE7
2022 Exploring the Enforcement of Private, Dynamic Policies on Medical Workflow Execution
abstract
We report on the ideas and experiences of adapting Brane, a workflow execution framework, for use cases involving medical data exchange and processing. These use cases impose new requirements on the system to enforce policies encoding safety properties, ranging from access control to legal regulations pertaining to data privacy. Our approach emphasizes users' control over the extent to which they cooperate in distributed execution, at the cost of revealing information about their policies.
Christopher A. Esterhuyse, Tim Müller, L. Thomas van Binsbergen, Adam Belloum
e-Science3
2022 A Modular Architecture for Integrating Normative Advisors in MAS
Mostafa Mohajeri Parizi, L. Thomas van Binsbergen, Giovanni Sileno, Tom M. van Engers
EUMAS2
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
SLE1
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
SLE2
2022 Making the Invisible Visible in Computational Notebooks
abstract
Notebooks are increasingly popular programming tools adopted by a diverse range of users, including professional and novice users, from various fields not necessarily skilled in software engineering, to experiment with programming and develop software. Notebooks are often used within interactive and exploratory programming settings; however, some of their main use cases are not naturally supported by their design. For example, users can only get insights into the program’s state by executing program fragments and updating one’s mental model. This paper discusses the possibility of defining widgets to improve notebooks by providing direct insights into the program state. The widgets are developed upon previous work in which a novel approach to incremental programming is suggested based on the notion of an exploring interpreter. As example, we present widgets for visualizing execution history and variable assignments, thereby reducing the cognitive load on users.
Mauricio Verano Merino, L. Thomas van Binsbergen, Mazyar Seraj
VL/HCC2
2020 eFLINT: a domain-specific language for executable norm specifications
abstract
Software systems that share potentially sensitive data are subjected to laws, regulations, policies and/or contracts. The monitoring, control and enforcement processes applied to these systems are currently to a large extent manual, which we rather automate by embedding the processes as dedicated and adaptable software services in order to improve efficiency and effectiveness. This approach requires such regulatory services to be closely aligned with a formal description of the relevant norms.
L. Thomas van Binsbergen, Lu-Chi Liu, Robert van Doesburg, Tom M. van Engers
GPCE1
2019 Derivation representation using binary subtree sets
Elizabeth Scott, Adrian Johnstone, L. Thomas van Binsbergen
Sci. Comput. Program.3
2018 Funcons for HGMP: the fundamental constructs of homogeneous generative meta-programming (short paper)
abstract
The PLanCompS project proposes a component-based approach to programming-language development in which fundamental constructs (funcons) are reused across language definitions. Homogeneous Generative Meta-Programming (HGMP) enables writing programs that generate code as data, at run-time or compile-time, for manipulation and staged evaluation. Building on existing formalisations of HGMP, this paper introduces funcons for HGMP and demonstrates their usage in component-based semantics.
L. Thomas van Binsbergen
GPCE1
2018 Checking cryptographic API usage with composable annotations (short paper)
abstract
Developers of applications relying on cryptographic libraries can easily make mistakes in their use. Popular dynamic languages such as JavaScript make testing or verifying such applications particularly challenging. In this paper, we present our ongoing work toward a methodology for automatically checking security properties in JavaScript code. Our main idea is to attach security annotations to values that encode properties of interest. We illustrate our idea using examples and, as an initial step in our line of work, we present a formalization of security annotations in a statically typed lambda calculus. As next steps, we will translate our annotations to a dynamically typed formalization of JavaScript such as λJS and implement a runtime checked type extension using code instrumentation for full JavaScript.
Duncan Mitchell, L. Thomas van Binsbergen, Blake Loring, Johannes Kinder
PEPM2
2018 GLL parsing with flexible combinators
abstract
At SLE in 2014, Ridge presented the P3 combinator library with which parsers can be developed for left-recursive, non-deterministic and ambiguous grammars. A combinator expression in P3 yields a binarised grammar reflecting the expression's structure. The grammar is given to an underlying, generalised parsing procedure computing all derivations.
L. Thomas van Binsbergen, Elizabeth Scott, Adrian Johnstone
SLE1
2015 Linearly Ordered Attribute Grammars: with Automatic Augmenting Dependency Selection
abstract
Attribute Grammars (AGs) extend Context-Free Grammars with attributes: information gathered on the syntax tree that adds semantics to the syntax. AGs are very well suited for describing static analyses, code-generation and other phases incorporated in a compiler.
L. Thomas van Binsbergen, Jeroen Bransen, Atze Dijkstra
PEPM1
2015 Linearly Ordered Attribute Grammar Scheduling Using SAT-Solving
Jeroen Bransen, L. Thomas van Binsbergen, Koen Claessen, Atze Dijkstra
TACAS2