Programming Languages and Integrated Development Environments for User Interfaces

Emphasis is put on the thorough design and implementation of novel domain–specific programming languages, focusing on improved programming support with a new generation of interactive instruments. These Research activities have ended.


Indicative Outcomes


Tool for live visual game programming with time-travel mechanics (2021): A comprehensive toolset for in-game live-development mechanics combining visual programming and direct manipulation of all game objects during gameplay, and time-travel on global game state recordings, enabling free rewinding or replaying for easier, iterative and playful live testing and in-game updating.

Live reverse debugger for LLDB (2021):A live reverse debugger on top of the LLDB API.

Testbed for isolation testing of smart IoT automations with virtual devices (2021): Full-scale implementation of a simulated IoT runtime, enabling end-users to carry out isolated testing and debugging of smart-automations, with virtual devices and virtual-time control, independently and physically away of the actual IoT device ecosystem.

An IDE for visual end-user programming of smart automations (2020): An Integrated Development Environment (IDE) for visual programming languages in order to empower the end-users to develop smart automations in the context of the IoT environments.

Block-level debugger and collaborative multi-user editor for Blockly (2019): A full-scale block-level debugger offering all tracing (stepping) and inspection (watches) features in analogy to source-level debugger.

Puppy (2017): A visual integrated development environment, which achieves IoT (Internet of Things) domain integration with ambient-assisted living scenarios, as well as domain editor integration (Blockly only integrated).

Meta Delta (2014): An integrated multi-stage metaprogramming system for the Delta language which includes language, compiler and virtual machine extensions, a full-scale aspect-oriented programming system, and a full-scale compile-time debugging system.

Aspects for stages (2014): Introducing cross-cutting concerns on metaprograms and treating aspects as transformation batches in the same language

Adaptivity refactoring (2014): A software refactoring process to accommodate User-Interface adaptivity within existing applications

Integrated metaprogramming (2014): A novel model and implementation for compile-time multi-stage metaprogramming

Staged model-driven generators (2013/2014): Alleviating maintenance in model-driven engineering issue by shifting responsibility for code emission to staged metaprograms

Onboard! (2014): A tabletop game editor, including the game engine and sample games, structured tiles and generic path editor, user-defined soft dialogues with built-in switch-based access, spin keyboards, gamepads, and virtual keyboards, as well as a multi-player, multi-cursor, roundtable-topology pluggable input system.

Sprint (2014): A compositing window system proving a desktop and books toolkit, dynamic on-the-fly switching between window managers and unlimited compositing nesting.

Meta debugging (2013): An integrated approach to source-level debugging and compile error reporting in meta-programs

Cross-language exception handling (2011): Cross-handling exceptions in language embedding

Untyped operator overloading (2011): An integration implementation of untyped object-based operator overloading

Soft dialogues (2010): An extensible, pluggable and accessible input system for table-top games

amby (2010): Cvirtual avatar for adaptive social comments in games

Structured tiles (2009): Coarse-grained tiling with directed sub-graphs of recurring path patterns in board games

RESTful debugger inspection (2009): Representation-state transfer in inspection protocols enabling language-agnostic inspection and concurrent non-modal sessions

Interactive object graphs (2009): Layer-object graphs for debuggers with improved inspection and configuration features

Flying Circus (2008): A tool for visual prototyping of software designs based on CRC cards (Classes Responsibilities Collaborators) offering: 3d visualizations with zooming and panning, rotational inspection and 3d manipulators, with optional immersive navigation through stereoscopic views.

Subobject trees (2008): An enhanced form of untyped object-based inheritance

Sparrow IDE (2007 - on going): The Integrated Development Environment (IDE) of the Delta language, supporting self-extensibility, self-debugging, remote deployment as a component, with a full range of features including project manager, syntax directed editor, source level debugger with advanced tree and graph views, adaptive profiles, source browser and build process tree.

DELTA (2004- on going): Named from 'Dynamic Embeddable Language for Extending Applications', supporting dynamic untyped object-based inheritance, garbage collection, and dynamic operator overloading, compiles to byte code and supports dynamic code loading and execution as independent virtual machines.

DMSL (2003): A decision making specification language to define the runtime system adaptation logic, with its compiler and execution system, supporting localized named decision blocks, deployment parameters with stereotypes (macros).

I-GET (2000): A language-based User Interface Management System, offering the I–GET language supporting: multi–toolkit integration, hierarchical dialogue agent classes with declarative activation, constraints, monitors, event handler classes, virtual object classes, hooks and bridges with the C++ languages, typed channels and shared objects for linkage with the function core. The compiler generates code in the C++ language.You may freely download the source code (Windows, VS 2005 version) of I-GET (compiler, runtime, win server,examples) - the code is offered 'as it is'with no particular support.