We have experience

The arrival of GDPR has accelerated the attention for privacy. Who has access to what personal data of personal or clients?

Privacy, anonymization and data cleaning

The arrival of GDPR has accelerated the attention for privacy. Who has access to what personal data of personal or clients? How are personal data filtered from research data sets. How is internet traffic anonymized for detection of DDOS attacks?

In all these cases, there is a major gap between the legal requirements and their technical implementation.

We have designed and implemented Nescio, a domain-specific language for the description of anonymization policies. A policy describes which part of the data should be anonymized and how the sensitive parts should be hidden. The actual anomyzation is carried out by the Nescio implementation: it parses the data, finds the relevant parts in the data and anonymizes them.

Impact
Lawyers can formulate and review anonymization policies and they have a guarantee that the specified policy is actually implemented.
See also
Nescio Site
We offer
Tailored anonymization tools.

Forensic evidence is becoming more and more digital. Files on confiscated devices need to be analyzed and searched for relevant data.

Forensics and binary data analysis

Forensic evidence is becoming more and more digital. Files on confiscated devices (laptops, cameras, mobile phones) need to be analyzed and searched for relevant data. Unfortunately the amount of different data and message formats (jpeg, mpeg, word, pdf, …) is already overwhelming and rapidly growing. Manually implementing analysis tools for each format becomes prohibitive. Therefore we have created BIRD, a domain-specific language for describing and parsing binary data. From a description of a data format we automatically generate the corresponding parsing tool to analyze that specific data format.

An extensive overview of this approach is described in the dissertation by Jeroen van den Bos: Gathering Evidence: Model-driven software engineering in automated digital forensics.

Impact
Parse binary data, according to its format specification, without coding
See also
https://github.com/SWAT-engineering/bird/
We offer
Tailored tools for parsing binary data.

Today’s financial software is usually the result of decades of software development and evolution. That makes it hard to maintain.

Finance

Today’s financial software is usually the result of decades of software development and evolution. That makes it hard to maintain. That also makes it hard to guarantee functional and non-functional requirements. We have designed and implemented several domain-specific languages aiming at generation, coordination, querying and testing of financial products. They are characterized by: Complete separation of desired behaviour and implementation. Independent type checking, validation, verification and testing. Efficient code generation that integrates in target platforms.

For more details see Stoel, J, van der Storm, T, Vinju, J.J, & Bosman, J.W. (2016). Solving the bank with Rebel: on the design of the Rebel specification language and its application inside a bank. In ITSLE 2016 - Proceedings of the 1st Industry Track on Software Language Engineering, co-located with SPLASH 2016 (pp. 13–20).

Impact
Enable data analytics on data that could not be combined until now
We offer
Faster development of financial products with guaranteed functionality and behaviour

Based on mathematical modelling and stochastic simulation, we have built Seconds, a system for optimizing ambulance response times.

Healthcare logistics

Timely arrival of ambulances at the location of an incident can be a matter of life and death. Based on mathematical modelling and stochastic simulation, we have built Seconds, a system for optimizing ambulance response times. Shortly, Seconds will be deployment in several security regions in The Netherlands.
Impact
Lives are saved by more timely ambulances
See also
https://www.stokhos.eu/
We offer
Turnkey projects that fit our technical profile.

Data analytics becomes enabled on all available business data

Domain Data Analytics on Polystores

Essential business data is usually scattered over heterogeneous (relational, graph, elastic) databases. We are involved in designing and implementing a high-level query language for such polystores : a single query can be dispatched to the polystore and the results from the various databases are retrieved, integrated and returned in a uniform, standardized way. Bottom line: data analytics becomes enabled on all available business data.
Impact
Enable data analytics on data that could not be combined until now
See also
TYPHON project
We offer
Specialized, tailored, tools for data analytics on polystores

Improve the quality of embedded systems

Embedded systems

Many embedded systems have been implemented in C or C++ and become harder to maintain and modernize. We have been involved in various projects to address this: Analyze C++ code to extract component structure. Analyze C code to extract embedded state machines. Generating code from hybrid C++/DSL state machines.
Impact
Maintainable embedded systems of higher quality
We offer
Tailored analysis of software systems in a variety of languages.

Building toward a common, Web-native language workbench: open to all, closed to lock-in

Next Generation Parsing for the Next Generation Internet

The success of the internet was enabled by the development of new languages and data formats. Classical examples are HTML/CSS/JSON; modern ones are TypeScript/WASM/JSX. Society will need many more new languages to take full advantage of the Next Generation Internet (NGI). However, developing new languages requires big investments and expertise. Realistically, it makes language development for the NGI inaccessible to most.

The aim of the Next Generation Parsing (NGP) project is to leverage and evolve the existing metaprogramming platform Rascal to deliver open-source parsing technology for the NGI. We will develop a common, Web-native parser runtime based on the GLL algorithm (that supports error-recovery) for parsing any context-free language into type-safe parse trees. The expected outcome of the project enables users to easily define grammars, generate parsers, and seamlessly integrate them into their NGI apps.

The long-term vision is to democratize language development for the NGI by building a common, Web-native language workbench (one-stop-shop for parsing, type checking, code analysis, code generation, and execution) that deploys directly on the internet architecture.

Impact
Open-source parsing technology for the NGI
We offer
Extensive expertise on parsers, language workbenches, and tool building