Cross-Language Code Analysis and Refactoring

Many software systems are built with different languages, that need to work together. For instance a different programming language for UI and back-end, a system that uses XML for configuration or a system using a database, where class names have to match table names. These links are often implicit and this leads to problems. The authors of this paper propose a system called XLL to describe these links, so tool support is enabled.

It looks like this:

It works, but not for all link types. Simple links, like a matching name, are easy, but complex links lead to large XLL specifications and sometimes it it not expressive enough. Also, it is hard to debug the link specs, especially if they involve complex logic. XLL is integrated into Exclipse and available online.