VLDB 2026 Research / reviewers in the wild / expert
Wolfgang De Meuter
dblp:18/2971
· DBLP profile ↗
72ranked-venue papers
2as first author
10since 2021 · last 2026
0000-0002-5229-5627ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 51 · 2 first-author · 8 since 2021Systems, architecture and hardware · 5 · 1 since 2021Human-computer interaction and ubiquitous computing · 5 · 1 since 2021Artificial intelligence and machine learning · 2 · 1 since 2021Databases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1Theory of computation · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | TurtleTalk: A DSL for Constraint-Based Turtle Graphics in Programmatic CADabstractIn programmatic CAD (PCAD), 3D shapes are generally modelled either by position-based composition of simpler shapes, or by direct generation via path-based techniques (e.g., extrusions, sweeps, revolves). While state-of-the-art PCAD tools effectively support position-based modelling, they lack expressive mechanisms for path-based modelling. As a result, shapes that are naturally formed by sweeping a 2D path into a 3D shape are difficult to model and use in these tools. This paper introduces TurtleTalk, a PCAD language that offers rich support for constructing path-based shapes and the composition of path-based and primitive shapes. TurtleTalk is an extension of PrintTalk, a PCAD language featuring constraints for composing constituent shapes into complex 3D models. TurtleTalk takes inspiration from turtle graphics for constructing paths using imperative instructions and uniquely integrates constraints to enable the declarative expression of path properties. Our evaluation shows that combining imperative instructions and declarative constraints facilitates the design of path-based shapes by reducing the need for complex manual calculations, while also enhancing their composability and reusability. Jef Jacobs, Wolfgang De Meuter, Jens Nicolay |
GPCE | 2 |
| 2025 | PrintTalk: A Language for Constraint-Based 3D Modelling
Jef Jacobs, Wolfgang De Meuter, Jens Nicolay |
CP | 2 |
| 2025 | Smelling Secrets: Leveraging Machine Learning and Language Models for Sensitive Parameter Detection in Ansible Security AnalysisabstractInfrastructure as Code is an emerging paradigm to automate the configuration of cloud infrastructures. Infrastructure code often processes secret information, such as passwords or private keys. Mishandling such secrets can lead to information disclosure vulnerabilities, yet existing efforts to detect them rely on pattern matching of parameter and variable names, causing false positives and negatives due to suboptimal string patterns.This paper aims to address these limitations by assessing the effectiveness of traditional Machine Learning (ML) and transformer-based Language Model (LM) classifiers to predict sensitive module parameters in Ansible, one of the most popular IaC tools. We collect a dataset of over 160,000 Ansible module parameters and their documentation, containing more than 16,000 parameters that expect secret data. Then, we train several ML algorithms and find that the Random Forest algorithm performs best, achieving 93.5% precision but limited recall (72.7%). In parallel, we evaluate multiple pretrained zero-shot language models, which achieve a recall of up to 90.4% at the expense of a lower precision of up to 88.5%. We subsequently fine-tune the language models, resulting in nearly perfect precision (99.8%) and recall (99.8%) on the ground truth dataset.We compare the best performing ML and LM classifiers to two baselines that use string patterns. We find that the ML classifier achieves a performance comparable to the two baselines, while the fine-tuned LM outperforms all approaches. A qualitative comparison reveals that the approaches are complementary to the baselines, motivating future work to use prediction models to reduce false positives in reports generated by inexpensive baselines. However, we also find that the fine-tuned LM misses several secrets caused by noise in the dataset, highlighting the importance of fine-tuning on a high-quality ground truth. Ruben Opdebeeck, Valeria Pontillo, Camilo Velázquez-Rodríguez, Wolfgang De Meuter, Coen De Roover |
SCAM | 4 |
| 2023 | MODINF: Exploiting Reified Computational Dependencies for Information Flow AnalysisabstractInformation Flow Control is important for securing applications, primarily to preserve the confidentiality and integrity of applications and the data they process.Statically determining the flows of information for security purposes helps to secure applications early in the development pipeline.However, a sound and precise static analysis is difficult to scale.Modular static analysis is a technique for improving the scalability of static analysis.In this paper, we present an approach for constructing a modular static analysis for performing Information Flow Control for higher-order, imperative programs.A modular analysis requires information about data dependencies between modules.These dependencies arise as a result of information flows between modules, and therefore we piggy-back an Information Flow Control analysis on top of an existing modular analysis.Additionally, the resulting modular Information Flow Control analysis retains the benefits of its modular character.We validate our approach by performing an Information Flow Control analysis on 9 synthetic benchmark programs that contain both explicit and implicit information flows. Jens Van der Plas, Jens Nicolay, Wolfgang De Meuter, Coen De Roover |
ENASE | 3 |
| 2023 | Secure RDTs: Enforcing Access Control Policies for Offline Available JSON DataabstractReplicated Data Types (RDTs) are a type of data structure that can be replicated over a network, where each replica can be kept (eventually) consistent with the other replicas. They are used in applications with intermittent network connectivity, since local (offline) edits can later be merged with the other replicas. Applications that want to use RDTs often have an inherent security component that restricts data access for certain clients. However, access control for RDTs is difficult to enforce for clients that are not running within a secure environment, e.g., web applications where the client-side software can be freely tampered with. In essence, an application cannot prevent a client from reading data which they are not supposed to read, and any malicious changes will also affect well-behaved clients. This paper proposes Secure RDTs (SRDTs), a data type that specifies role-based access control for offline-available JSON data. In brief, a trusted application server specifies a security policy based on roles with read and write privileges for certain fields of an SRDT. The server enforces read privileges by projecting the data and security policy to omit any non-readable fields for the user's given role, and it acts as an intermediary to enforce write privileges. The approach is presented as an operational semantics engineered in PLT Redex, which is validated by formal proofs and randomised testing in Redex to ensure that the formal specification is secure. Thierry Renaux, Sam Van den Vonder, Wolfgang De Meuter |
Proc. ACM Program. Lang. | 3 |
| 2022 | A Graph-Based Formal Semantics of Reactive Programming from First PrinciplesabstractIn recent years, stream processing has become the de facto paradigm to process any kind of real-time data in many kinds of applications. Different libraries, frameworks and techniques exists which aim to make it easy to build stream processing applications in many modern programming languages...Libraries such as Reactive Extensions, Akka Streams, or web frameworks such as React and Vue are all based on the idea of data streams that model the flow of data in applications. To the best of our knowledge, there exist no formalism which captures the essential core semantics of these approaches in a straightforward, easy to understand, manner: namely its graph-based program structure and the way how values propagate through this graph. In this paper, we present Karcharias, a formalisation of reactive programming – a model that shares many core ideas found in the various aforementioned libraries and frameworks – that is built from first principles. Instead of extending an existing language with a graph-based stream processing framework, and formalising this integrated language, we formalised the reactive programming paradigm without relying on a base language (such as the λ -calculus). Using our formalism, we show how reactive programs (and thus, stream-based programs in general) need a way to construct a graph and to propagate events through that graph, even in the absence of a base language. Bjarno Oeyen, Joeri De Koster, Wolfgang De Meuter |
FTfJP@ECOOP | 3 |
| 2022 | Easing Construction of Smart Agriculture Applications Using Low Code Development Tools
Isaac Nyabisa Oteyo, Angel Luis Scull Pupo, Jesse Zaman, Stephen Kimani, Wolfgang De Meuter, Elisa Gonzalez Boix |
MobiQuitous | 5 |
| 2021 | PrintTalk: a constraint-based imperative DSL for 3D printingabstractWe present PrintTalk, a DSL to "program" 3D objects, called "gadgets". PrintTalk also features "topologies", which are predefined spacial arrangements of gadgets. Gadgets are composed by executing a gadget script (possibly consisting of subscripts) that 'draws' the gadget in the 3D scene. However, executing the script also returns a number of constraint variables. These variables can be constrained inside the gadget and can also be bound outside the gadget in order to constrain the produced gadgets after the facts. This is the essence of the gadget composition mechanism of PrintTalk. Jef Jacobs, Jens Nicolay, Christophe De Troyer, Wolfgang De Meuter |
DSM@SPLASH | 4 |
| 2021 | A reusable & reconfigurable Citizen Observatory platform
Jesse Zaman, Kennedy Kambona, Wolfgang De Meuter |
Future Gener. Comput. Syst. | 3 |
| 2021 | Chocola: Composable Concurrency LanguageabstractProgrammers often combine different concurrency models in a single program, in each part of the program using the model that fits best. Many programming languages, such as Clojure, Scala, and Java, cater to this need by supporting different concurrency models. However, existing programming languages often combine concurrency models in an ad hoc way, and the semantics of the combinations are not always well defined. This article studies the combination of three concurrency models: futures, transactions, and actors. We show that a naive combination of these models invalidates the guarantees they normally provide, thereby breaking the assumptions of programmers. Hence, we present Chocola : a unified language of futures, transactions, and actors that maintains the guarantees of all three models wherever possible, even when they are combined. We describe and formalize the semantics of this language and prove the guarantees it provides. We also provide an implementation as an extension of Clojure and demonstrated that it can improve the performance of three benchmark applications for relatively little effort from the developer. Janwillem Swalens, Joeri De Koster, Wolfgang De Meuter |
ACM Trans. Program. Lang. Syst. | 3 |
| 2020 | Tackling the Awkward Squad for Reactive Programming: The Actor-Reactor ModelabstractReactive programming is a programming paradigm whereby programs are internally represented by a dependency graph, which is used to automatically (re)compute parts of a program whenever its input changes. In practice reactive programming can only be used for some parts of an application: a reactive program is usually embedded in an application that is still written in ordinary imperative languages such as JavaScript or Scala. In this paper we investigate this embedding and we distill "the awkward squad for reactive programming" as 3 concerns that are essential for real-world software development, but that do not fit within reactive programming. They are related to long lasting computations, side-effects, and the coordination between imperative and reactive code. To solve these issues we design a new programming model called the Actor-Reactor Model in which programs are split up in a number of actors and reactors. Actors and reactors enforce a strict separation of imperative and reactive code, and they can be composed via a number of composition operators that make use of data streams. We demonstrate the model via our own implementation in a language called Stella. Sam Van den Vonder, Thierry Renaux, Bjarno Oeyen, Joeri De Koster, Wolfgang De Meuter |
ECOOP | 5 |
| 2019 | Putting Order in Strong Eventual Consistency
Kevin De Porre, Florian Myter, Christophe De Troyer, Christophe Scholliers, Wolfgang De Meuter, Elisa Gonzalez Boix |
DAIS | 5 |
| 2019 | Composable Actor Behaviour
Sam Van den Vonder, Joeri De Koster, Wolfgang De Meuter |
DAIS | 3 |
| 2019 | Effect-Driven Flow Analysis
Jens Nicolay, Quentin Stiévenart, Wolfgang De Meuter, Coen De Roover |
VMCAI | 3 |
| 2019 | Mining Scala Framework Extensions for Recommendation PatternsabstractTo use a framework, developers often need to hook into and customise some of its functionality. For example, a common way of customising a framework is to subclass a framework type and to override some of its methods. Recently, Asaduzzaman et al. defined these customisations as extension points and proposed a new approach to mine large amounts of Java code examples and recommend the most frequently used example, so called extension patterns. Indeed, recommending extension patterns that frequently occur at such extension points can help developers to adopt a new framework correctly and to fully exploit it. In this paper, we present a differentiated replication study of the work by Asaduzzaman et al. on Java frameworks. Our aim is to replicate the work in order to analyse extension points and extension patterns in the context of Scala frameworks. To this aim, we propose SCALA-XP-MINER, a tool for mining extension patterns in Scala software systems to empirically investigate our hypotheses. Our results show that the approach proposed by the reference work is also able to mine extension patterns for Scala frameworks and that our tool is able to achieve similar Precision, Recall and F-measure compared to FEMIR. Despite this, the distribution of the extension points by category is different and most of the patterns are rather simple. Thus, the challenge of recommending more complex patterns to Scala developers is still an open problem. Yunior Pacheco, Jonas De Bleser, Tim Molderez, Dario Di Nucci, Wolfgang De Meuter, Coen De Roover |
SANER | 5 |
| 2019 | A general method for rendering static analyses for diverse concurrency models modular
Quentin Stiévenart, Jens Nicolay, Wolfgang De Meuter, Coen De Roover |
J. Syst. Softw. | 3 |
| 2018 | Building IoT Systems Using Distributed First-Class Reactive ProgrammingabstractContemporary IoT systems are challenging to develop, deploy, and maintain. This is because of their ever-increasing scale, dynamic network topologies, heterogeneity and resource constraints of the involved devices, and failures that may occur as a result of these characteristics. Existing approaches are either not at the right level of abstraction, require developers to learn specialized languages, or miss certain key features to address all these challenges in a uniform manner. In this paper we leverage reactive programming and code mobility to support the entire life-cycle of large-scale IoT systems. Our approach is based on existing programming technologies and offers simple and composable abstractions to developers. We implemented our approach in a middleware called Potato and used it to develop and deploy an IoT application on a Raspberry Pi cluster. We found that using Potato reduces much of the accidental complexity associated with developing and deploying IoT systems, resulting in clean and maintainable programs. Christophe De Troyer, Jens Nicolay, Wolfgang De Meuter |
CloudCom | 3 |
| 2018 | Static Typing of Complex Presence Constraints in InterfacesabstractMany functions in libraries and APIs have the notion of optional parameters, which can be mapped onto optional properties of an object representing those parameters. The fact that properties are optional opens up the possibility for APIs and libraries to design a complex "dependency logic" between properties: for example, some properties may be mutually exclusive, some properties may depend on others, etc. Existing type systems are not strong enough to express such dependency logic, which can lead to the creation of invalid objects and accidental usage of absent properties. In this paper we propose TypeScriptIPC: a variant of TypeScript with a novel type system that enables programmers to express complex presence constraints on properties. We prove that it is sound with respect to enforcing complex dependency logic defined by the programmer when an object is created, modified or accessed. Nathalie Oostvogels, Joeri De Koster, Wolfgang De Meuter |
ECOOP | 3 |
| 2018 | Orchestrating dynamic analyses of distributed processes for full-stack JavaScript programsabstractDynamic analyses are commonly implemented by instrumenting the program under analysis. Examples of such analyses for JavaScript range from checkers of user- defined invariants to concolic testers. For a full-stack JavaScript program, these analyses would benefit from reasoning about the state of the client-side and server-side processes it is comprised of. Lifting a dynamic analysis so that it supports full-stack programs can be challenging. It involves distributed communication to maintain the analysis state across all processes, which has to be deadlock-free. In this paper, we advocate maintaining distributed analysis state in a centralized analysis process instead — which is communicated with from the processes under analysis. The approach is supported by a dynamic analysis platform that provides abstractions for this communication. We evaluate the approach through a case study. We use the platform to build a distributed origin analysis, capable of tracking the expressions from which values originate from across process boundaries, and deploy it on collaborative drawing application. The results show that our approach greatly simplifies the lifting process at the cost of a computational overhead. We deem this overhead acceptable for analyses intended for use at development time. Laurent Christophe, Coen De Roover, Elisa Gonzalez Boix, Wolfgang De Meuter |
GPCE | 4 |
| 2017 | Mailbox Abstractions for Static Analysis of Actor ProgramsabstractProperties such as the absence of errors or bounds on mailbox sizes are hard to deduce statically for actor-based programs. This is because actor-based programs exhibit several sources of unboundedness, in addition to the non-determinism that is inherent to the concurrent execution of actors. We developed a static technique based on abstract interpretation to soundly reason in a finite amount of time about the possible executions of an actor-based program. We use our technique to statically verify the absence of errors in actor-based programs, and to compute upper bounds on the actors' mailboxes. Sound abstraction of these mailboxes is crucial to the precision of any such technique. We provide several mailbox abstractions and categorize them according to the extent to which they preserve message ordering and multiplicity of messages in a mailbox. We formally prove the soundness of each mailbox abstraction, and empirically evaluate their precision and performance trade-offs on a corpus of benchmark programs. The results show that our technique can statically verify the absence of errors for more benchmark programs than the state-of-the-art analysis. Quentin Stiévenart, Jens Nicolay, Wolfgang De Meuter, Coen De Roover |
ECOOP | 3 |
| 2017 | Inter-parameter Constraints in Contemporary Web APIs
Nathalie Oostvogels, Joeri De Koster, Wolfgang De Meuter |
ICWE | 3 |
| 2017 | Efficient Matching in Heterogeneous Rule Engines
Kennedy Kambona, Thierry Renaux, Wolfgang De Meuter |
IEA/AIE (1) | 3 |
| 2017 | Reentrancy and Scoping for Multitenant Rule EnginesabstractEvolutions in web technologies have enabled more and more applications to be deployed in the Cloud leading to the increasing adoption of multitenancy.Multitenant systems can share one application instance across many tenants and clients distributed over multiple devices.These systems need to manage the shared knowledge base reused by the various users and applications they support.Rather than hard-coding all the shared knowledge and ontologies, developers often encode this knowledge in the form of rules to program server-side business logic.In such situations, a modern inference engine can be used to accommodate the knowledge for tenants of a multitenant web system.Existing inference engines, however, were not conceptually designed to support and to cope with the knowledge of the rules of multiple applications and clients at the same time.They are not fit for multitenant web systems since one has to manually hard-code the modularity of the knowledge for the various applications and clients, which quickly becomes complex and fallible.We present Serena, a middleware supporting multitenant reactive web applications.Serena augments an event-driven web server with a Rete-based inference engine.The distinctive feature of Serena is the notion of reentrancy and scoping in its inference engine, which is the key solution in making it multitenant.We validate our work through a simulated case study and a comparison with a similar common-place approach, showing that our flexible approach improves computational efficiency in the engine. Kennedy Kambona, Thierry Renaux, Wolfgang De Meuter |
WEBIST | 3 |
| 2017 | Scaling machine learning for target prediction in drug discovery using Apache Spark
Dries Harnie, Mathijs Saey, Alexander E. Vapirev, Jörg K. Wegner, Andrey Gedich, Marvin N. Steijaert, Hugo Ceulemans, Roel Wuyts, Wolfgang De Meuter |
Future Gener. Comput. Syst. | 9 |
| 2017 | Purity analysis for JavaScript through abstract interpretationabstractAbstract We present a static analysis for determining whether and to what extent functions in JavaScript programs are pure. To this end, the analysis classifies functions as pure functions, observers, or procedures. A function is pure if none of its executions generate or depend upon externally observable side effects. A function is an observer as soon as one of its executions depends on an external side effect, but none of its executions generate observable side effects. Otherwise, the function is classified as a procedure. Function executions and associated callers are found by traversing all reachable function execution contexts on the call stack at the point where an effect occurs. Our approach is based on a flow analysis that, in addition to computing traditional control and value flow, keeps track of read and write effects. To increase the precision of our purity analysis, we combine it with an intraprocedural analysis that determines freshness of variables and objects. We formalize the core aspects of our technique and discuss its implementation and results on common JavaScript benchmarks. Results show that our approach is capable of determining function purity in the presence of higher‐order functions, dynamic property expressions, and prototypal inheritance. When compared with existing purity analyses, we find that our approach is as precise or more precise than the existing analyses. Jens Nicolay, Quentin Stiévenart, Wolfgang De Meuter, Coen De Roover |
J. Softw. Evol. Process. | 3 |
| 2016 | Just-in-time inheritance: a dynamic and implicit multiple inheritance mechanismabstractMultiple inheritance is often criticised for the ambiguity that arises when multiple parents want to pass on a feature with the same name to their offspring. A survey of programming languages reveals that no programming language has an inherently implicit and dynamic approach to resolve this ambiguity. This paper identifies just-in-time inheritance as the first implicit and dynamic inheritance mechanism. The key idea of just-in-time inheritance is that one of the parents is favoured over the others, which resolves the ambiguity, and that the favoured parent can change at runtime. However, just-in-time inheritance is not the silver bullet to solve all ambiguity problems heir to multiple inheritance, because it is not applicable in all scenarios. We conclude that the applicability of just-in-time inheritance is to be found in systems where multiple inheritance is used to model an ``is-a OR is-a''-relation, rather than the more traditional ``is-a AND is-a''-relation. Mattias De Wael, Janwillem Swalens, Wolfgang De Meuter |
DLS | 3 |
| 2016 | Transactional Tasks: Parallelism in Software TransactionsabstractMany programming languages, such as Clojure, Scala, and Haskell, support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. In this paper, we study the combination of futures and Software Transactional Memory. Currently, futures created within a transaction cannot access the transactional state safely, violating the serializability of the transactions and leading to undesired behavior. We define transactional tasks: a construct that allows futures to be created in transactions. Transactional tasks allow the parallelism in a transaction to be exploited, while providing safe access to the state of their encapsulating transaction. We show that transactional tasks have several useful properties: they are coordinated, they maintain serializability, and they do not introduce non-determinism. As such, transactional tasks combine futures and Software Transactional Memory, allowing the potential parallelism of a program to be fully exploited, while preserving the properties of the separate models where possible. Janwillem Swalens, Joeri De Koster, Wolfgang De Meuter |
ECOOP | 3 |
| 2016 | Dependence-driven delimited CPS transformation for JavaScriptabstractIn today’s web applications asynchronous requests to remote services using callbacks or futures are omnipresent. The continuation of such a non-blocking task is represented as a callback function that will later be called with the result of the request. This style of programming where the remainder of a computation is captured in a continuation function is called continuation-passing style (CPS). This style of programming can quickly lead to a phenomenon called “call- back hell”, which has a negative impact on the maintain- ability of applications that employ this style. Several alter- natives to callbacks are therefore gaining traction within the web domain. For example, there are a number of frameworks that rely on automatically transforming sequential style code into the continuation-passing style. However, these frame- works often employ a conservative approach in which each function call is transformed into CPS. This conservative approach can sequentialise requests that could otherwise be run in parallel. So-called delimited continuations can remedy, but require special marks that have to be manually inserted in the code for marking the beginning and end of the continuation. In this paper we propose an alternative strategy in which we apply a delimited CPS transformation that operates on a Program Dependence Graph instead to find the limits of each continuation.We implement this strategy in JavaScript and demonstrate its applicability to various web programming scenarios. Laure Philips, Joeri De Koster, Wolfgang De Meuter, Coen De Roover |
GPCE | 3 |
| 2016 | Smart cities: Intelligent environments and dumb people? Panel summaryabstractPervasive and mobile computing technologies can make our everyday living environments and our cities "smart", i.e., capable of reaching awareness of physical and social processes and of dynamically affecting them in a purposeful way. In general, living in a smart environment and being made part of its activities somehow make us - as individuals - smarter as well, by increasing our perceptory and social capabilities. However, a potential risk could be to start delegating too much to the environment itself, losing in critical attention, abandoning individual decision making for relying on collective computational governance of our activity, and in the end also losing awareness of environmental and social processes. The panel intends to discuss the above issues with the help of relevant researchers in the area of pervasive computing, smart environments, collective intelligence. Franco Zambonelli, Wolfgang De Meuter, Salil S. Kanhere, Seng W. Loke, Flora D. Salim |
PerCom | 2 |
| 2016 | Scala-AM: A Modular Static Analysis FrameworkabstractWe present Scala-AM, a modular framework for static analysis based on systematic abstraction of abstract machines. Scala-AM achieves modularity by separating operational semantics, abstract values and machine abstraction concerns via actions, thus enabling language designers, static analysis developers and machine abstraction experts to combine their efforts. This modularity enables us to support semantics for multiple languages, and to include multiple machine abstractions in our framework. Different operational semantics and machine abstractions can then be combined with minimal effort. We evaluate our framework by demonstrating how it enables implementing machine abstractions independently of the operational semantics, and by instantiating the framework for a static taint analysis of Scheme. Quentin Stiévenart, Maarten Vandercammen, Wolfgang De Meuter, Coen De Roover |
SCAM | 3 |
| 2016 | Linvail: A General-Purpose Platform for Shadow Execution of JavaScriptabstractWe present Linvail, a novel instrumentation platform for developing dynamic analyses of JavaScript programs. Linvail is particularly well-suited to implementing shadow executions which involve tagging runtime values with analysis-specific data. In contrast to existing instrumentation platforms, Linvail is capable of tracking both tagged objects and tagged primitive values during their entire life-time in a behavior-preserving manner. To demonstrate the expressiveness of our platform, we present the implementation of several state-of-the-art analyses. Our experiments demonstrate that Linvail's accuracy comes at the price of a performance overhead, but we believe that real-world applications will remain usable under analysis. Laurent Christophe, Elisa Gonzalez Boix, Wolfgang De Meuter, Coen De Roover |
SANER | 3 |
| 2015 | Scaling Machine Learning for Target Prediction in Drug Discovery using Apache SparkabstractIn the context of drug discovery, a key problem is the identification of candidate molecules that affect proteins associated with diseases. Inside Janssen Pharmaceutical, the Chemo genomics project aims to derive new candidates from existing experiments through a set of machine learning predictor programs, written in single-node C++. These programs take a long time to run and are inherently parallel, but do not use multiple nodes. We show how we reimplementation the pipeline using Apache Spark, which enabled us to lift the existing programs to a multi-node cluster without making changes to the predictors. We have benchmarked our Spark pipeline against the original, which shows almost linear speedup up to 8 nodes. In addition, our pipeline generates fewer intermediate files while allowing easier check pointing and monitoring. Dries Harnie, Alexander E. Vapirev, Jörg K. Wegner, Andrey Gedich, Marvin N. Steijaert, Roel Wuyts, Wolfgang De Meuter |
CCGRID | 7 |
| 2015 | Poster: Dynamic Analysis Using JavaScript ProxiesabstractJavaScript has become a popular programming language. However, its highly dynamic nature encumbers static analysis for quality assurance purposes. Only dynamic techniques such as concolic testing seem to cope. Often, these involve an instrumentation phase in which source code is extended with analysis-specific concerns. The corresponding implementations represent a duplication of engineering efforts. To facilitate developing dynamic analyses for JavaScript, we introduce Aran; a general-purpose JavaScript instrumenter that takes advantage of proxies, a recent addition to the JavaScript reflection APIs. Laurent Christophe, Coen De Roover, Wolfgang De Meuter |
ICSE (2) | 3 |
| 2015 | Poster: Tierless Programming in JavaScriptabstractWhereas "responsive" web applications already offered a more desktop-like experience, there is an increasing user demand for "rich" web applications (RIAs) that offer collaborative and even off-line functionality. Realizing these qualities requires distributing previously centralized application logic and state vertically from the server to a client tier (e.g., for desktop-like and off-line client functionality), and horizontally between instances of the same tier (e.g., for collaborative client functionality and for scaling of resource-starved services). Both bring about the essential complexity of distributing application assets and maintaining their consistency, along with the accidental complexity of reconciling a myriad of heterogenous tier-specific technology. Tierless programming languages enable developing web applications as a single artefact that is automatically split in tier-specific code - resulting in a development process akin to that of a desktop application. This relieves developers of distribution and consistency concerns, as well as the need to align different tier-specific technologies. However, programmers still have to adopt a new and perhaps esoteric language. We therefore advocate developing tierless programs in a general-purpose language instead. In this poster, we introduce our approach to tierless programming in JavaScript. We expand upon our previous work by identifying development challenges arising from this approach that could be resolved through tool support. Laure Philips, Wolfgang De Meuter, Coen De Roover |
ICSE (2) | 2 |
| 2015 | Poster: Static Analysis of Concurrent Higher-Order ProgramsabstractFew static analyses support concurrent higher-order programs. Tools for detecting concurrency bugs such as deadlocks and race conditions are nonetheless invaluable to developers. Concurrency can be implemented using a variety of models, each supported by different synchronization primitives. Using this poster, we present an approach for analyzing concurrent higher-order programs in a precise manner through abstract interpretation. We instantiate the approach for two static analyses that are capable of detecting deadlocks and race conditions in programs that rely either on compare-and-swap (cas), or on conventional locks for synchronization. We observe few false positives and false negatives on a corpus of small concurrent programs, with better results for the lock-based analyses. We also observe that these programs lead to a smaller state space to be explored by the analyses. Our results show that the choice of synchronization primitives supported by an abstract interpreter has an important impact on the complexity of the static analyses performed with this abstract interpreter. Quentin Stiévenart, Jens Nicolay, Wolfgang De Meuter, Coen De Roover |
ICSE (2) | 3 |
| 2015 | Detecting concurrency bugs in higher-order programs through abstract interpretationabstractManually detecting bugs in concurrent programs is hard due to the myriad of thread interleavings that needs to be accounted for. Higher-order programming features only exacerbate this difficulty. The need for tool support therefore increases as these features become more widespread. We investigate the P(CEK*)S abstract machine as the foundation for tool support for detecting concurrency bugs. This abstract interpreter analyzes multi-threaded, higher-order programs with shared-store concurrency and a compare-and-swap synchronization primitive. In this paper, we evaluate two different approaches to reduce the size of the state space explored by the abstract interpreter. First, we integrate abstract garbage collection into the abstract interpreter, and we observe that it does not reduce the state space as expected. We then evaluate the impact of adding first-class support for locks on the machine's client analyses. To this end, we compare a cas-based and a lock-based formulation of race condition and deadlock detection analyses. We show that adding first-class support for locks not only significantly reduces the number of abstract program states that need to be explored, but also simplifies formulating the client analyses. Quentin Stiévenart, Jens Nicolay, Wolfgang De Meuter, Coen De Roover |
PPDP | 3 |
| 2015 | Detecting function purity in JavaScriptabstractWe present an approach to detect function purity in JavaScript. A function is pure if none of its applications cause observable side-effects. The approach is based on a pushdown flow analysis that besides traditional control and value flow also keeps track of write effects. To increase the precision of our purity analysis, we combine it with an intraprocedural analysis to determine freshness of variables and object references. We formalize the core aspects of our analysis, and discuss our implementation used to analyze several common JavaScript benchmarks. Experiments show that our technique is capable of detecting function purity, even in the presence of higher-order functions, dynamic property expressions, and prototypal inheritance. Jens Nicolay, Carlos Noguera, Coen De Roover, Wolfgang De Meuter |
SCAM | 4 |
| 2015 | Parallel gesture recognition with soft real-time guarantees
Stefan Marr, Thierry Renaux, Lode Hoste, Wolfgang De Meuter |
Sci. Comput. Program. | 4 |
| 2015 | Computational contracts
Christophe Scholliers, Éric Tanter, Wolfgang De Meuter |
Sci. Comput. Program. | 3 |
| 2014 | Orchestration support for participatory sensing campaignsabstractIn this paper we argue the need for orchestration support for participatory campaigns to achieve campaign quality, and automatisation of said support to achieve scalability, both issues contributing to stakeholder usability. This goes further than providing support for defining campaigns, an issue tackled in prior work. We provide a formal definition for a campaign by extracting commonalities from the state of the art and expertise in organising noise mapping campaigns. Next, we formalise how to ensure campaigns end successfully, and translate this formal notion into an operational recipe for dynamic orchestration. We then present a framework for automatising campaign definition, monitoring and orchestration which relies on workflow technology. The framework is validated by re-enacting several campaigns previously run through manual orchestration and quantifying the increased efficiency. Ellie D'Hondt, Jesse Zaman, Eline Philips, Elisa Gonzalez Boix, Wolfgang De Meuter |
UbiComp | 5 |
| 2014 | Prevalence and Maintenance of Automated Functional Tests for Web ApplicationsabstractFunctional testing requires executing particular sequences of user actions. Test automation tools enable scripting user actions such that they can be repeated more easily. SELENIUM, for instance, enables testing Web applications through scripts that interact with a Web browser and assert properties about its observable state. However, little is known about how common such tests are in practice. We therefore present a cross-sectional quantitative study of the prevalence of SELENIUM-based tests among open-source Web applications, and of the extent to which such tests are used within individual applications. Automating functional tests also brings about the problem of maintaining test scripts. As the system under test evolves, its test scripts are bound to break. Even less is known about the way test scripts change over time. We therefore also present a longitudinal quantitative study of whether and for how long test scripts are maintained, as well as a longitudinal qualitative study of the kind of changes they undergo. To the former's end, we propose two new metrics based on whether a commit to the application's version repository touches a test file. To the latter's end, we propose to categorize the changes within each commit based on the elements of the test upon which they operate. As such, we are able to identify the elements of a test that are most prone to change. Laurent Christophe, Reinout Stevens, Coen De Roover, Wolfgang De Meuter |
ICSME | 4 |
| 2014 | AmbientTalk: programming responsive mobile peer-to-peer applications with actors
Tom Van Cutsem, Elisa Gonzalez Boix, Christophe Scholliers, Andoni Lombide Carreton, Dries Harnie, Kevin Pinte, Wolfgang De Meuter |
Comput. Lang. Syst. Struct. | 7 |
| 2014 | Distributed debugging for mobile networks
Elisa Gonzalez Boix, Carlos Noguera, Wolfgang De Meuter |
J. Syst. Softw. | 3 |
| 2014 | Programming mobile context-aware applications with TOTAM
Elisa Gonzalez Boix, Christophe Scholliers, Wolfgang De Meuter, Theo D'Hondt |
J. Syst. Softw. | 3 |
| 2014 | Parallel actor monitors: Disentangling task-level parallelism from data partitioning in the actor model
Christophe Scholliers, Éric Tanter, Wolfgang De Meuter |
Sci. Comput. Program. | 3 |
| 2014 | Programming Urban-Area Applications by Exploiting Public TransportationabstractThe evolution of smartphones has given rise to urban-area applications: applications that communicate in a city by means of the public (moving) infrastructure (e.g., buses and trams). In this setting, applications need to communicate with and discover each other using intermediaries that move around the city and transfer data between them. This requires programmers to scatter code that deals with routing messages to the correct place and deal with network failures all over their programs. Our approach allows the programmer to specify urban-area applications in a high-level manner without the burden of directly encoding communication using intermediaries. We present this as a translation from a high-level object-oriented programming paradigm to a low-level communication mechanism. This translation allows the programmer to restrict routing of messages to, for example, a certain number of hops, geographic areas, or even types of carrier devices. In addition, we show how high-level group messaging can be efficiently represented in the low-level communication. Finally, we document our experiences in setting up a small-scale real-world urban-area application. Dries Harnie, Elisa Gonzalez Boix, Theo D'Hondt, Wolfgang De Meuter |
ACM Trans. Auton. Adapt. Syst. | 4 |
| 2013 | Event Loop Coordination Using Meta-programming
Laure Philips, Dries Harnie, Kevin Pinte, Wolfgang De Meuter |
COORDINATION | 4 |
| 2013 | Ambient Clouds: Reactive Asynchronous Collections for Mobile Ad Hoc Network Applications
Kevin Pinte, Andoni Lombide Carreton, Elisa Gonzalez Boix, Wolfgang De Meuter |
DAIS | 4 |
| 2013 | Determining dynamic coupling in JavaScript using object type inferenceabstractCoupling in an object-oriented context is often defined in terms of access to instance variables and methods of other classes. JavaScript, however, lacks static type information and classes, and instead features a flexible object system with prototypal inheritance. In order to determine coupling in JavaScript, we infer object types based on abstract interpretation of a program. Type inference depends on both structure and behavior of objects, and common patterns for expressing classes and modules are supported. We approximate a set of accessed types per function, and classify every access as either local or foreign. Examples demonstrate that our object type inference, together with some additional heuristics concerning property access, enable determining coupling in JavaScript in a meaningful way. Jens Nicolay, Carlos Noguera, Coen De Roover, Wolfgang De Meuter |
SCAM | 4 |
| 2013 | CrimeSPOT: A language and runtime for developing active wireless sensor network applications
Coen De Roover, Christophe Scholliers, Wouter Amerijckx, Theo D'Hondt, Wolfgang De Meuter |
Sci. Comput. Program. | 5 |
| 2013 | Software abstractions for mobile RFID-enabled applicationsabstractSUMMARY Our everyday environments may soon be pervaded with radio frequency identification (RFID) tags integrated in physical objects. These RFID tags can store a digital representation of the physical object and transmit it wirelessly to pervasive, context‐aware applications running on mobile devices. However, communicating with RFID tags is prone to many failures inherent to the technology. This hinders the development of such applications, as traditional programming models require the programmer to deal with the RFID hardware characteristics manually. On the other hand, traditional RFID middleware focuses on limited scenarios in an enterprise context and not on general ubiquitous computing scenarios. In this paper, we extend the ambient‐oriented programming paradigm to program RFID applications, by considering RFID tags as intermittently connected mutable proxy objects hosted on mobile distributed computing devices, and detail our prototype implementation. Copyright © 2011 John Wiley & Sons, Ltd. Andoni Lombide Carreton, Kevin Pinte, Wolfgang De Meuter |
Softw. Pract. Exp. | 3 |
| 2012 | Flexub: Dynamic Subscriptions for Publish/Subscribe Systems in MANETs
Engineer Bainomugisha, Koosha Paridel, Jorge Vallejos, Yolande Berbers, Wolfgang De Meuter |
DAIS | 5 |
| 2012 | MORENA: A Middleware for Programming NFC-Enabled Android Applications as Distributed Object-Oriented Programs
Andoni Lombide Carreton, Kevin Pinte, Wolfgang De Meuter |
Middleware | 3 |
| 2012 | Bringing Scheme programming to the iPhone - ExperienceabstractSUMMARY The iPhone SDK provides a powerful platform for the development of applications that make use of iPhone capabilities, such as sensors, GPS, Wi‐Fi, or Bluetooth connectivity. We observe that so far the development of iPhone applications has mostly been restricted to using Objective‐C. However, developing applications in plain Objective‐C on the iPhone OS suffers from limitations, such as the need for explicit memory management and lack of syntactic extension mechanism. Moreover, when developing distributed applications in Objective‐C, programmers have to manually deal with distribution concerns, such as service discovery, remote communication, and failure handling. In this paper, we discuss our experience in porting the Scheme programming language to the iPhone OS and how it can be used together with Objective‐C to develop iPhone applications. To support the interaction between Scheme programs and the underlying iPhone APIs, we have implemented a language symbiosis layer that enables programmers to access the iPhone SDK libraries from Scheme. In addition, we have designed high‐level distribution constructs to ease the development of distributed iPhone applications in an event‐driven style. We validate and discuss these constructs with a series of examples, including an iPod controller, a maps application, and a distributed multiplayer Scrabble‐like game. We discuss the lessons learned from this experience for other programming language ports to mobile platforms. Copyright © 2011 John Wiley & Sons, Ltd. Engineer Bainomugisha, Jorge Vallejos, Elisa Gonzalez Boix, Pascal Costanza, Theo D'Hondt, Wolfgang De Meuter |
Softw. Pract. Exp. | 6 |
| 2011 | Automatic Parallelization of Side-Effecting Higher-Order Scheme ProgramsabstractThe multi-core revolution heralds a challenging era for software maintainers. Manually parallelizing large sequential code bases is often infeasible. In this paper, we present a program transformation that automatically parallelizes real-life Scheme programs. The transformation has to be instantiated with an interprocedural dependence analysis that exposes parallelization opportunities in a sequential program. To this end, we extended a state-of-the art analysis that copes with higher-order procedures and side effects. Our parallelizing transformation exploits all opportunities for parallelization that are exposed by the dependence analysis. Experiments demonstrate that this brute-force approach realizes scalable speedups in certain benchmarks, while others would benefit from a more selective parallelization. Jens Nicolay, Coen De Roover, Wolfgang De Meuter, Viviane Jonckers |
SCAM | 3 |
| 2011 | Midas: a declarative multi-touch interaction frameworkabstractOver the past few years, multi-touch user interfaces emerged from research prototypes into mass market products. This evolution has been mainly driven by innovative devices such as Apple's iPhone or Microsoft's Surface tabletop computer. Unfortunately, there seems to be a lack of software engineering abstractions in existing multi-touch development frameworks. Many multi-touch applications are based on hard-coded procedural low level event processing. This leads to proprietary solutions with a lack of gesture extensibility and cross-application reusability. We present Midas, a declarative model for the definition and detection of multi-touch gestures where gestures are expressed via logical rules over a set of input facts. We highlight how our rule-based language approach leads to improvements in gesture extensibility and reusability. Last but not least, we introduce JMidas, an instantiation of Midas for the Java programming language and describe how JMidas has been applied to implement a number of innovative multi-touch gestures. Christophe Scholliers, Lode Hoste, Beat Signer, Wolfgang De Meuter |
TEI | 4 |
| 2011 | Ambient contracts: verifying and enforcing ambient object compositions à la carte
Christophe Scholliers, Dries Harnie, Éric Tanter, Wolfgang De Meuter, Theo D'Hondt |
Pers. Ubiquitous Comput. | 4 |
| 2010 | Distributed Object-Oriented Programming with RFID Technology
Andoni Lombide Carreton, Kevin Pinte, Wolfgang De Meuter |
DAIS | 3 |
| 2010 | Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fine-Grained ParallelismabstractThis paper presents an algorithm and a data structure for scalable dynamic synchronization in fine-grained parallelism. The algorithm supports the full generality of phasers with dynamic, two-phase, and point-to-point synchronization. It retains the scalability of classical tree barriers, but provides unbounded dynamicity by employing a tailor-made insertion tree data structure. It is the first completely documented implementation strategy for a scalable phaser synchronization construct. Our evaluation shows that it can be used as a drop-in replacement for classic barriers without harming performance, despite its additional complexity and potential for performance optimizations. Furthermore, our approach overcomes performance and scalability limitations which have been present in other phaser proposals. Stefan Marr, Stijn Verhaegen, Bruno De Fraine, Theo D'Hondt, Wolfgang De Meuter |
HPCC | 5 |
| 2009 | Adding State and Visibility Control to Traits Using Lexical Nesting
Tom Van Cutsem, Alexandre Bergel, Stéphane Ducasse, Wolfgang De Meuter |
ECOOP | 4 |
| 2009 | Linguistic symbiosis between event loop actors and threads
Tom Van Cutsem, Stijn Mostinckx, Wolfgang De Meuter |
Comput. Lang. Syst. Struct. | 3 |
| 2009 | Using aspect orientation in legacy environments for reverse engineering using dynamic analysis - An industrial experience report
Bram Adams, Kris De Schutter, Andy Zaidman, Serge Demeyer, Herman Tromp, Wolfgang De Meuter |
J. Syst. Softw. | 6 |
| 2009 | Mirror-based reflection in AmbientTalkabstractAbstract This paper introduces a novel mechanism to perform intercession (a form of reflection) in an object‐oriented programming language with the goal of making the language extensible from within itself. The proposed mechanism builds upon a mirror‐based architecture, leading to a reusable reflective application programming interface that cleanly separates interface from implementation details. However, support for intercession has been limited in contemporary mirror‐based architectures. This is due to the fact that mirror‐based architectures only support reflection explicitly triggered by metaprograms, while intercession requires reflection implicitly triggered by the language interpreter. This work reconciles mirrors with intercession in the context of an actor‐based, object‐oriented programming language named AmbientTalk. We describe this language's full reflective architecture, highlighting its novel mirror‐based approach to reflect upon both objects and concurrently executing actors. Subsequently, we apply AmbientTalk's mirror‐based reflection to implement two language features, which crucially depend on intercession, to wit future‐type message passing and leased object references. Copyright © 2008 John Wiley & Sons, Ltd. Stijn Mostinckx, Tom Van Cutsem, Stijn Timbermont, Elisa Gonzalez Boix, Éric Tanter, Wolfgang De Meuter |
Softw. Pract. Exp. | 6 |
| 2008 | Preface
Wolfgang De Meuter |
Comput. Lang. Syst. Struct. | 1 |
| 2007 | Object-Oriented Coordination in Mobile Ad Hoc Networks
Tom Van Cutsem, Jessie Dedecker, Wolfgang De Meuter |
COORDINATION | 3 |
| 2007 | Fact Spaces: Coordination in the Face of Disconnection
Stijn Mostinckx, Christophe Scholliers, Eline Philips, Charlotte Herzeel, Wolfgang De Meuter |
COORDINATION | 5 |
| 2007 | Design recovery and maintenance of build systemsabstractThe build system forms an indispensable part of any software project. It needs to evolve in parallel with the source code in order to build, test and install the software. Unfortunately, little tool support exists to help maintainers gain insight into the build system, much less to refactor it. In this paper, we therefore present the design and implementation of a re(verse)-engineering framework for build systems named MAKAO. At its heart the framework makes the build's dependency graph available in a tangible way. Aside from visualisation, this enables powerful querying of all build-related data, as well as various filtering techniques to define views on the build architecture. If desired, all this gathered information can be put to use to write aspects for refactoring the build. Afterwards, validation rules can help in assessing failure or success. We applied our implementation on an industrial C system and the Linux 2.6.16.18 kernel, with good results. Bram Adams, Herman Tromp, Kris De Schutter, Wolfgang De Meuter |
ICSM | 4 |
| 2007 | MAKAOabstractThis demo presents MAKAO (Makefile Architecture Kernel featuring Aspect Orientation), a re(verse)-engineering framework for build systems. At its heart, MAKAO makes the build's dependency graph available in a tangible way. Aside from visualisation, this enables powerful querying of all build-related data, as well as various filtering techniques to define views on the build architecture. If desired, all this gathered information can be put to use to write aspects for refactoring the build. Afterwards, validation rules can help in assessing failure or success. Bram Adams, Herman Tromp, Kris De Schutter, Wolfgang De Meuter |
ICSM | 4 |
| 2006 | Ambient-Oriented Programming in AmbientTalk
Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx, Theo D'Hondt, Wolfgang De Meuter |
ECOOP | 5 |
| 2005 | Flexible object encapsulation for ambient-oriented programmingabstractIn the emerging field of Ambient Intelligence (AmI), software is deployed in wireless open networks of mobile devices. Such open networks require stringent security measures as unknown and untrusted hosts may join the network. In an object-oriented language, where objects are distributed and moved across the network, it thus becomes important to be able to enforce object encapsulation. In contemporary object-oriented programming languages, powerful operations such as object extension (inheritance), cloning and reflection, are typically provided via omnipotent language operators that fail to uphold object encapsulation, because they can be applied without the explicit consent of the concerned object. This paper formulates a language design principle --extreme encapsulation-- that precludes the use of such harmful operators, and proposes a corresponding language feature --method attributes-- that makes it possible to provide the flexibility of object extension, cloning and reflection without compromising on object encapsulation. Although some existing object-based languages can be said to support extreme encapsulation, our contribution is to support it in a delegation-based, prototype-based language named ChitChat. Wolfgang De Meuter, Éric Tanter, Stijn Mostinckx, Tom Van Cutsem, Jessie Dedecker |
DLS | 1 |
| 1999 | Optimizing Object-Oriented Languages Through Architechtural Transformations
Tom Tourwé, Wolfgang De Meuter |
CC | 2 |
| 1995 | A Marriage of Class- and Object-Based inheritance Without Unwanted Children
Patrick Steyaert, Wolfgang De Meuter |
ECOOP | 2 |