Research artifacts
- On this page you'll find an overview of all the software tools and other artifacts developed in the course of our research. They are sorted by their main research topic, but some research artifacts may touch against other research topics as well.
- See also our Subversion source code repository and our Bugzilla bug tracking system.
Ambient & Context Oriented Programming
AmbientTalk
Our experimental programming language to develop applications for software running on mobile ad hoc networks.
ContextL is a CLOS extension for Context-oriented Programming (COP). It was actually the first language extension that explicitly supports COP, and support for COP in other languages was added later on.
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.
Parallel Programming & Quantum Computing
RoarVM: The Manycore Squeak VM
The RoarVM is the first manycore virtual machine for Smalltalk. It is build in cooperation with IBM Research as part of the Renaissance project.
Beaver
An experimental general-purpose parallel programming language for manycore architectures.
Model Driven Software Engineering
PlatformKit
A platform modelling and platform dependency management toolkit for the Model Driven Architecture (MDA) and Model Driven Software Product Lines (MDSPL).
CoBro
A Smalltalk environment empowering developers to build extensible and documented software (based on the Concept-Centric Coding approach).
SpoonEMF2
Creating, transforming and analyzing Java source code models from the Eclipse IDE.
Jar2UML
Reverse engineering of jar files to UML models.
Java AST
Creating Java AST EMF models of Java source code for analysis and model transformation.
EMF Transformation Virtual Machine
A VM for model transformation that provides common executable semantics for module and rule composition. Compilers exist for ATL and SimpleGT.
MOF to OWL conversion
XSLT-based conversion of MOF 1.3 models to OWL models, including some sample models.
CoCompose
A concept-based approach to software design, supporting AOSD and CBSD automatic code generation.
SimpleGT
A small, simple graph transformation language based on the Eclipse Modeling Framework (EMF). SimpleGT is intended as a proof-of-concept transformation language for the EMF Transformation Virtual Machine (EMFTVM).
SimpleOCL
A proof-of-concept implementation of the OCL standard based on the Eclipse Modeling Framework (EMF). SimpleOCL compiles to the EMF Transformation Virtual Machine (EMFTVM).
Code Analysis and Manipulation
JIPDA
JIPDA (JavaScript Interprocedural Dependence Analysis) is a generic abstract interpreter for JavaScript, written in JavaScript. JIPDA is highly parameterized and provides many hooks and callbacks, making it an easily customizable foundation for JavaScript program analysis. Instead of keeping track of giant state spaces by default, JIPDA employs events to notify interested parties of what is happening during an abstract interpretation run. JIPDA's combination of flexible design, extensibility, and coverage of the JavaScript specification (ECMA-262 5.1 targeted for now) makes it a unique and versatile program analysis tool.
Ekeko
Ekeko enables querying and manipulating an Eclipse workspace using applicative logic programs. Its libraries provide support for answering program queries (e.g., “is my code bug free?” or “does my code follow the prescribed design?”) as well as transforming programs (e.g., “patch my code as follows”) in a declarative manner. Ekeko is the successor to SOUL.
Torch
Torch is a software visualization tool to support integrators getting an overview and understanding of proposed changes in the context of object-oriented programming. It characterizes changes based on structural information, authors and symbolic information. Torch mixes text-based diffs with visual representation and metrics characterizing the changes.
IntensiVE
The Intensional Views Environment (IntensiVE) empowers software architects and developers with tools and techniques to monitor the internal quality of software development projects. IntensiVE verifies a wide range of good practices, detects bad code smells and, most importantly, verifies application-specific architectural rules and constraints in your application's source code.
SOUL
The Smalltalk Open Unification Language (SOUL) is a language integrated into Smalltalk environments and is designed for declarative meta programming. Declarative meta programming is the use of a declarative language for meta programming. SOUL falls in the class of logic-based declarative languages and is similar to Prolog, but includes some specialized features for meta programming.
Padus is an aspect-oriented extension to BPEL, which allows modularizing crosscutting concerns in separate aspects.
Unify is a framework for uniform modularization of all workflow concerns, be they regular or crosscutting.
JAsCo
A new AOP language that is tailored for CBSD.
StrongAspectJ
An AspectJ language extension to support flexible and safe pointcut/advice bindings.
WSML
Enabling client-side management of Web Services using Dynamic AOSD.
FuseJ
A new AOP approach aiming at integrating aspect and components.
PacoSuite
Enhancing viusal component based software development. Integrates AOSD into CBSD design level.
CoBro
A Smalltalk environment empowering developers to build extensible and documented software (based on the Concept-Centric Coding approach).
Dynamic Annotations
An extension to Java annotations that allows developers to include dynamic conditions on the activation of annotations.
Runtime Architectures & Middleware
Pico
Pico is a tiny but expressive programming language that was especially designed to teach advance computer science concepts to students in other sciences than computer science (such as Physics and Chemistry). In a sense, Pico can be seen as a non-trivial marriage between the power of languages like Scheme, and, the standard infix notation students are used to from ordinary calculus. A.o., Pico features garbage collected tables (i.e. arrays), higher order functions, objects, meta programming and reflection. But above all, Pico is small! Really small!
Bringing Scheme to the iPhone
Experiments on porting Scheme to the iPhone platform. Our driving motivation is to bring a host of well-known Scheme benefits (e.g., closures and first class functions, structural macros, and automatic garbage collection) to the iPhone development.
Schemeken
A distributed, resilient Scheme interpreter.
















