Leader of the group Software Analysis and Transformation: Jurgen Vinju.

SWAT studies software systems: their design, construction and evolution. Our mission is to learn to understand software systems and to improve their quality. In particular, we study the causes of software complexity – a major cause of technology failure in society – and investigate how complex systems can be made simpler and more reliable. We analyze and visualize software systems, transforming them into better versions of themselves. We also generate new software with the goal of simplifying it through automation and abstraction. We keep our feet on the ground by working with corporate IT departments on streamlining their software systems and making them more reliable. Putting our ideas into practice is the best way to ensure they work.


Postdoc on the subject of hybrid polystore query language design and implementation

TYPHON is an EU H2020 project, which aims at providing an industry-validated methodology and integrated technical offering for designing, developing, querying, evolving, analysing and monitoring scalable hybrid data persistence architectures that will meet the growing scalability and heterogeneity requirements of the European industry. Designing and deploying a hybrid data persistence architecture that involves a combination of relational and NoSQL databases, and which can manage different types of structured and textual data (polystores for conciseness), is a complex, technically challenging, and error-prone task.


Current events

SWAT seminar: Rodin Aarssen (SWAT)

  • 2019-03-29T11:00:00+01:00
  • 2019-03-29T12:00:00+01:00
March 29 Friday

Start: 2019-03-29 11:00:00+01:00 End: 2019-03-29 12:00:00+01:00

Room L120 at CWI, Science Park 123 in Amsterdam

Everyone is welcome to attend the SWAT lecture of Rondin Aarssen entitled "Concrete Syntax with Black Box Parsers"

Meta programming is the art of writing software that takes source code as input for manipulation, analysis or code generation.
Many meta programming systems reason about abstract syntax trees representing this source code, which requires intimate knowledge of the data type that describes the abstract syntax.
Concrete syntax patterns allow meta programmers to create and perform matching on syntax trees using the actual concrete syntax of the object language.
However, meta programming systems that support these concrete syntax patterns generally require a concrete grammar of the object language, written in their own formalism. Writing such a grammar is a daunting, error-prone task, especially for
non-trivial programming languages, such as C++ and Java.

We present Concretely, a technique to augment meta programming systems with pluggable concrete syntax, reusing external, black box parsers. Concretely allows the meta programmer to use concrete syntax patterns in absence of a concrete grammar.
Additionally, we present Tympanic, a DSL to declaratively map external parsers' AST structures to the internal data structures of the Rascal meta programming language. Algebraic data types (ADTs) for the abstract grammar and marshalling code, mapping the external parser's AST to the generated Rascal ADT, are automatically generated from a Tympanic specification. Tympanic allows implementors of Concretely to solve the impedance mismatch problem between Rascal's algebraic data types and object-oriented class hierarchies in Java representing a grammar.

We show that for realistic programming languages, such as C++ and Java,  the effort of adding support for concrete syntax patterns with Concretely is in the order of dozens of source lines of code (SLOC). Similarly, we show that using Tympanic for grammar mapping yields a significant reduction in terms of SLOC, compared to manually implementing the AST data types and marshalling code.



Associated Members



Current projects with external funding

  • Enterprise software engineering
  • Developer-Centric Knowledge Mining from Large Open-Source Repositories (CROSSMINER)
  • Model Extraction for Re-engineering Traditional Software (MERITS)
  • Polyglot and Hybrid Persistence Architectures for Big Data Analytics (TYPHON)

Related partners

  • ING Bank
  • Universita Degli Studi Dell'Qquila
  • University of York
  • Alpha Bank Anonymos Etairia
  • Institut für Angewandte Systemtechnik Bremen
  • Zorgios Ioannis
  • Edge Hill University
  • GMV Aerospace and Defence SA
  • Universite de Namur ASBL
  • Nea Odos Anonymi Eteria Parahorisis
  • X/Open Company Limited
  • Volkswagen AG