This is a talk by a guest of the Software Languages Team.


Hagen Schink (finnlabs GmbH & Otto-von-Guericke University Magdeburg)


Mastering Dependencies of Multi-Language Software Applications


Software Languages Team


B 233

Campus Koblenz


3 July 2014


3 pm (ct)


Programming languages are tools built for a certain purpose. It is the developerís responsibility to choose the
right tool for the right job. Thus, developers resort to a tool kit of programming languages to preserve their
productivity while software applications become more and more complex.

Components of software applications interact with each other, whether or not they are written in different
programming languages. Modern IDEs help developers to keep components of a software application synchronized,
e.g., ensuring that there are no dangling method references. But IDEs support synchronization only for a single
programming language or runtime at a time, leaving developers on their own synchronizing components written in
different programming languages.

We present an approach supporting developers keeping the components of their multi-language software application
(MLSA) in sync. Our approach is based upon trees and, thus, can be adapted to different implementations of
interaction found in an MLSA while having well-known performance characteristics. By automatically checking the
interaction of a software applicationís components, we want to enable developers to confidently apply refactorings
on the components regardless of the programming language the components are written in.


Hagen Schink is a professional software developer who is interested in the various tools modern software development
provides. Thus, he utilizes different programming languages, paradigms, platforms, and supporting technologies like
databases to implement software his clients care about.

In his last semester at Otto-von-Guerricke university, Hagen Schink recognized the lack of professional tools for
refactoring software applications written in different programming languages and DSLs. Based on this findings he
spends his time as external Ph.D. student analyzing interaction in multi-language software applications and their
implications for refactoring.