Programming Languages

Programming Languages and Integrated Development Environments for User Interfaces

Emphasis is put on the thorough design and implementation of novel domain–specific programming languages, focussing on large-scale User-Interface programming languages and adaption-oriented decision–logic specification languages. Currently, the main line of work is devoted to general-purpose dynamic untyped object-based languages, with activities addressing the full range of language design, entire language implementation, and integrated development environments, the latter including advanced interactive tools improving the overall programming process.




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

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

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

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

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.