In the last decade, multicore processors have become widely used for devices such as phones, tablets, and high-end servers. As a result, concurrent programming has become more important and complex software systems started to mix a wide range of concurrency models to solve both functional and non-functional requirements. Concurrency has, however, a pervasive influence on the whole system rather than being nicely confined to subsystems. This makes concurrent programs hard to understand and debug. Software tools for concurrent programs work on the lowest abstraction level, e.g., memory accesses, instead of the high-level concurrency concepts. To support the development of such complex systems, we propose to investigate language implementation support in the form of a meta-level interface which can capture the interaction amongst concurrency models in order to deliver the concepts needed to support tools. The research challenge is to identify a common meta-level interface that captures the essential properties of concurrency models, with a minimal performance overhead. A second major challenge is to investigate proper tool support, in particular, debugging tools that assist developers in finding errors, and improving program comprehension. Developing such tools is hard since the mere presence of a debugger may affect the way in which the program behaves. Thus, tools need to minimize their interference with program execution to avoid hiding concurrency issues.
Effective start/end date1/01/1631/12/18

    Research areas

  • informatics, complex concurrent systems

ID: 18654133