Description
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.
Vacancies
No vacancies currently.
News
Who's afraid of Object Algebras?
Object algebras are a simple technique that solves a long-standing problem of extensibility in programming languages, called the expression problem. CWI-researcher Tijs van der Storm presented the technique at Joy of Coding 2014
Valedictory speech 'The Software Revolution' by Paul Klint
On 22 January 2014 Paul Klint, research fellow at CWI and professor Software Engineering at the University of Amsterdam, will retire to the position of emeritus professor. The title of his valedictory speech is 'The Software Revolution'.
PhD research leads to innovation in digital forensics software
In forensics the analysis of digital data faces major challenges. The volume is growing exponentially and there is a wide variety of devices and formats. Jeroen van den Bos, PhD student at the Centrum Wiskunde & Informatica (CWI) in Amsterdam and software engineer at the Netherlands Forensic Institute (NFI), developed a new approach to develop flexible, automated digital forensics software.

Royal decoration for Paul Klint
Computer scientist Paul Klint from the Centrum Wiskunde & Informatica (CWI) in Amsterdam, was appointed Officer of the Order of Oranje-Nassau on 9 September 2013. Deputy Mayor of Bussum, Gerard Boekhoff, presented the Royal Decoration to Paul Klint for his outstanding contribution to science and society
Members
Associated Members
Publications
-
Schuts, M.T.W, Aarssen, R.T.A, Tielemans, P.M, & Vinju, J.J. (2022). Large-scale semi-automated migration of legacy C/C++ test code. Software: Practice and Experience, 2022, 1–38. doi:10.1002/spe.3082
-
van Rozen, R.A, Reijne, Y, Julia, C, & Samaritaki, G. (2021). First-person real-time collaborative meta-programming adventures. In Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment.
-
Verano Merino, M, Beckmann, T, van der Storm, T, Hirschfeld, R.A, & Vinju, J.J. (2021). Getting grammars into shape for block-based editors. In SLE 2021 - Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering (pp. 83–98). doi:10.1145/3486608.3486908
-
Stoel, J, van der Storm, T, & Vinju, J.J. (2021). Modeling with mocking. In Proceedings of the International Conference on Software Testing (pp. 59–70). doi:10.1109/ICST49551.2021.00018
-
Jansen, R.L, Farshidi, S, Gousios, G, van der Storm, T, Visser, J.M.W, & Bruntink, M. (2020). SearchSECO: A worldwide index of the open source software ecosystem. In CEUR Workshop Proceedings.
-
van Rozen, R.A. (2020). Languages of games and play: A systematic mapping study. ACM Computing Surveys, 53(6). doi:10.1145/3412843
-
van Binsbergen, L.T, Liu, L.-C, van Doesburg, R., & van Engers, T. (2020). eFLINT: a domain-specific language for executable norm specifications. In Proceedings of the ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences. doi:10.1145/3425898.3426958
-
Soethout, T.M, van der Storm, T, & Vinju, J.J. (2020). Automated Validation of State-Based Client-Centric Isolation with TLA+. In Proceedings SEFM 2020. doi:10.1007/978-3-030-67220-1_4
-
van Binsbergen, L.T, Scott, E, & Johnstone, A. (2020). Purely functional GLL parsing. Journal of Computer Languages, 58. doi:10.1016/j.cola.2020.100945
-
Leduc, M, Degueule, T.F, van Wyk, E, & Combemale, B. (2019). The software Language Extension Problem. Software and Systems Modeling. doi:10.1007/s10270-019-00772-7
Software
Rascal: one-stop shop for metaprogramming
Rascal is a general metaprogramming language, facilitating programmers in analyzing, transforming and generating source code.
Rebel: A domain-specific language for product development in finance
Rebel is a domain-specific language (DSL) targeted at the financial sector.
SAGA: A run-time verifier for Java programs
SAGA is a run-time verifier for single-threaded as well as multi-threaded Java programs.