Charlotte Herzeel

Learn More
Aspects based on join points that occurred in the execution history of a program provide a powerful way to make applications aware of their context. We present HALO, a logic metaprogramming approach based on temporal logic, that is designed with context-awareness in mind. A number of illustrative examples demonstrate HALO’s expressivity, including(More)
MOTIVATION Post-sequencing DNA analysis typically consists of read mapping followed by variant calling. Especially for whole genome sequencing, this computational step is very time-consuming, even when using multithreading on a multi-core machine. RESULTS We present Halvade, a framework that enables sequencing pipelines to be executed in parallel on a(More)
Coordination languages for ad hoc networks with a fluid topology do not offer adequate support to detect and deal with device disconnection. Such a disconnection is particularly relevant if the device provided context information rather than emitting messages, as such context information then becomes invalid. This paper proposed the Fact Space Model which(More)
Predicate dispatching is a generalized form of dynamic dispatch, which has strong limitations when arbitrary predicates of the underlying base language are used. Unlike classes, which enforce subset relationships between their sets of instances, arbitrary predicates generally do not designate subsets of each other, so methods whose applicability is based on(More)
Some program concerns cannot be cleanly modularized, and their implementation leads to code that is both hard to understand and maintain. In this paper we consider extending an e-commerce application, written in CLOS, with two of such crosscutting concerns. Though most of the time Common Lisp's macro facilities and CLOS' method combinations can be used to(More)
While most approaches to automatic parallelization focus on compilation approaches for parallelizing loop iterations, we advocate the need for new virtual machines that can parallelize the execution of recursive programs. In this paper, we show that recursive programs can be effectively parallelized when arguments to procedures are evaluated concurrently(More)
elPrep is a high-performance tool for preparing sequence alignment/map files for variant calling in sequencing pipelines. It can be used as a replacement for SAMtools and Picard for preparation steps such as filtering, sorting, marking duplicates, reordering contigs, and so on, while producing identical results. What sets elPrep apart is its software(More)
syntax tree, 120<lb>action, 121<lb>actions, 105<lb>actions of a production, 46<lb>activation, 135, 136<lb>active counter, 169<lb>active memory, 169<lb>active tuples, 17<lb>active widgets, 79, 80<lb>actuator, 72, 74, 93, 94<lb>actuators, 75, 78<lb>adaptation manager, 85<lb>adaptations, 70<lb>agenda, 135, 136<lb>aggregator, 72, 73<lb>all-past, 150<lb>alpha(More)
A reflective programming language provides means to render explicit what is typically abstracted away in its language constructs in an on-demand style. In the early 1980’s, Brian Smith introduced a general recipe for building reflective programming languages with the notion of procedural reflection. It is an excellent framework for understanding and(More)
Software transactional memory (STM) is a promising approach for coordinating concurrent threads, for which many different implementation strategies are currently being researched. In this paper we show that if a language implementation provides reflective access to explicit memory locations, it becomes straightforward to both (a) build a STM framework for(More)