ATEAMS: Analysis and Transformation based on rEliAble tool coMpositionS
Software is still very complex, and it seems to become more complex every year. Over the last decades, computer science has delivered various insights how to better organize software. Via structured programming, modules, objects, components and agents, software systems are more and more evolving into “systems of systems” that provide services to each other. Each system is large, uses incompatible — new, outdated or non-standard — technology and above all, exhibits failures.
It is becoming more and more urgent to analyze the properties of these complicated, heterogeneous and very large software systems and to refactor and transform them to make them simpler and to keep them up-to- date. With the phletora of different languages and technology platforms it is becoming very difficult and very expensive to construct tools to achieve this.
The main challenge of ATEAMS is to address the need for the combination of different kinds of novel analysis and transformation tools and the existence of the diversity of programming environments. We do this by investing in a virtual laboratory called “Rascal”. It is a domain specific programming language for source code analysis, transformation and generation. Rascal is programming language parametric, such that it can be used to analyze, transform or generated source code in any language. By combining concepts from both program analysis and transformation into this language we can efficiently experiment with all kinds of tools and algorithms.
We now focus on three sub-problems. First, we study fact extraction: to extract information from existing software systems. This extracted information is vital to construct sound abstract models that can be used in further analysis (such as model checking or static analysis). Automated fact extraction is still expensive and error-prone.
Second, we study refactoring: to semi-automatically improve the quality of a software system without changing its behavior. Refactoring tools are a combination of analysis and transformations. Implementations of refactoring tools are complex and often broken. We study better ways of designing refactorings and we study ways to enable new (more advanced and useful) refactorings.
Finally, we study code generation from domain specific languages (DSLs). Here we also find a combination of analysis and transformation. Designing, implementing and, very importantly, maintaining DSLs is costly. We focus on application areas such as Computational Auditing and Digital Forensics to experiment with this subject.
- Prof. Dr. Paul Klint (CWI)
- Dr. Mark Hills (INRIA)
- Prof. Dr. Jan van Eijck (CWI)
- Dr. Jurgen Vinju (CWI)
- Dr. Tijs van der Storm (CWI)
- Prof. Dr. Jan van Eijck (CWI)
- Dr. Vadim Zaytsev (CWI)
- Dr. Sunil Simon (CWI)
- Drs. ing. Jeroen van den Bos (PhD student, CWI)
- Drs. Bas Basten (PhD student, CWI)
- Drs. Paul Griffioen (PhD student, CWI)
- Drs. Floor Sietsma (PhD student, CWI)
- Drs. Arnold Lankamp (scientific programmer, CWI)
- Drs. Bert Lisser (scientific programmer, CWI)
- Maarten Dijkema (support, CWI)
- Yaroslav Usenko (INRIA)