REBLS Artifacts

REBLS
AmbientTalk Ambient-Oriented programming is a paradigm geared towards mobile computing. Mobile hardware (such as cell phones) is mostly equipped with wireless networking, allowing it to collaborate with nearby devices in its environment. However, because wireless network links are volatile (basically: when devices move out of wireless range, the connection drops), network failures occur much more frequently...
Fact Space Model Fact Space ModelThe Fact Space model is a coordination model which provides applications with a federated fact space: a distributed knowledge base containing logic facts which are implicitly made available for all devices within reach. Consequently, when an application asserts a fact in the federated fact space, other devices that are within earshot can see the fact and react to its appearance....
Midas Midas is a rule language which allows programmers to express gestures in a declarative way. The advantage of such an approach is that the programmer no longer needs to be concerned about how to derive gestures but only about describing the gesture.
NoiseTube Noise pollution is a serious problem in many cities. NoiseTube is a research project, started in 2008 at the Sony Computer Science Lab in Paris and currently hosted by the BrusSense Team at the Vrije Universiteit Brussel, which proposes a participative approach for monitoring noise pollution by involving the general public. The NoiseTube mobile app extends the current usage of mobile phones by...
TOTAM Scoped Tuples for the Ambient (TOTAM)TOTAM is tuple space model geared towards mobile ad hoc networks which provides a dynamic scoping mechanism that limits the transportation of tuples. TOTAM adopts features of both federated tuple spaces and replication-based approaches: it combines replication of tuples for read operations while guaranteeing atomicity for remove operations. In TOTAM, tuple...
CAMP
Aran Aran is a npm module for instrumenting JavaScript code which enables amongst other things: profiling, tracing, sandboxing, and symbolic execution. Aran performs a source-to-source code transformation fully compatible with ECMAScript5 and we are working toward supporting ECMAScript6. To install, run npm install aran. Note than Aran does not deal with module systems; alone, it can...
Ekeko Ekeko is a Clojure library for answering questions about and transforming Java programs. Among others, the library has been used extensively to find and automatically patch all occurrences of certain bugs. For such applications, Ekeko enables embedding logic queries in functional expressions. While the former have proven themselves for locating snippets of code in large programs,...
GASR GASR (General-purpose Aspectual Source code Reasoner) is a tool for answering user-specified questions about the structure as well as the behavior of an aspect-oriented program. Examples range from "which pointcut definitions are overridden in a subtype?" over "which pointcuts have a join point shadow in an advice?" to "can these advices be executed consecutively?". Such questions have to be...
Otiluke Otiluke is a toolbox for JavaScript source-to-source compilers - here called transpilers - which are written as CommonJS modules. Otiluke is itself a npm module and as such, should be installed through npm install otiluke -g. You can try out Otiluke here. As demonstrated in usage, Otiluke can: Debug and benchmark your JavaScript transpiler(s). Demonstrate how awesome are your...
QwalKeko QwalKeko provides an extension of the logic program querying language Ekeko. It allows developers and researchers to query the history and evolution of software projects stored in a VCS. To this end, QwalKeko constructs a graph of versions, in which each node represents a version, and successive versions are connected. Moving throughout this graph is done using Qwal, a graph query...
PPP
ClojureTxTk ClojureTxTk is a fork of Clojure, in which its Software Transactional Memory is extended with support for Transactional Tasks. A "transactional task" is a thread that was created in a software transaction. Hence, ClojureTxTk allows you to create threads inside transactions, that allow you to modify the transactional state, while these changes are part of the encompassing transaction.
Cloud PARTE Traffic monitoring or crowd management systems produce large amounts of data in the form of events that need to be processed to detect relevant incidents. Rule-based pattern recognition is a promising approach for these applications, however, increasing amounts of data as well as large and complex rule sets demand for more and more processing power and memory. In order to scale such...
PARTE PARTE is a production system using a variant of the Rete algorithm to detect user-interaction patterns. To that end, it transforms a set of declarative if-then rules into a directed acyclic graph, and uses this graph to match facts. PARTE is tailored towards CED and designed to be scalable on parallel systems, as well as extensible and embeddable.
Quantum Virtual Machine A small interpreter for the Measurement Calculus (Danos et al. 2009), written in high-performance C. The master branch version uses libquantum to perform the unitary and measurement operations. The openmp branch does not use libquantum anymore and uses OpenMP to parallelize the quantum operations considerably.