Forschungsthemen
[GB] Supporting role-based programming with source transformation
Role-based programming (ROP) has been established as a programming paradigm that enables context-adaptive programming. However, providing support for ROP in mainstream object-oriented languages requires metaprogramming. Existing approaches to ROP rely on bytecode weaving on the JVM (ObjectTeams) or runtime reflection (SCROLL). As both approaches come with their specific disadvantages (dependency on JVM APIs, performance), it would be interesting to evaluate the feasibility of an approach to ROP that only relies on source-to-source / AST transformations.
Parts of the topic include:
- Giving an overview of role-based modelling and programming
- Comparison of (dis-)advantages of current approaches to supporting ROP in mainstream OO languages (Object Teams, SCROLL, ...)
- Defining a concept to support ROP with source transformation
- Prototypical implementation of the concept as a Kotlin compiler-plugin using the Arrow Meta framework (
https://meta.arrow-kt.io ) - Implementation of a minimal role-based application (e. g. the Bank example)
- Implementation of a testsuite
For enrollment, some practical programming experience in Java / Kotlin / your favourite OO language is expected.
If you are generally interested in the area of role-based programming or context-adaptive programming but not this concrete topic, please feel free to contact the author to discuss alternative ideas.
Betreuer: Tim Kluge