Research topics

Our research covers a wide set of areas within the computer science aspects of programs and models.

Constraint Programming

Constraint programming (CP) has established itself as a successful and widely used approach to solving large and difficult combinatorial optimization problems. Constraint programming interleaves constraint propagation with global constraints (removing impossible values from variables) with heuristic search (decomposing the problem into simpler subproblems).

Global constraints allow problem modelers to accurately capture problem structure, while systems can use dedicated algorithms for global constraints to achieve strong reasoning. Heuristic search in CP has the advantage that it can be easily tailored to specific problem areas.

Constraint programming has been applied with tremendous success in many different application areas: scheduling, rostering, configuration, time-tabling, and many others. We in particular use constraint programming for generating assembly code, see the Unison  project.

Contact person: Christian Schulte

Modeling Languages

We investigate formalisms and formal language semantics for describing various heterogeneous models of computations in the form of domain-specific languages (DSLs). Some of the main research topics are:

  • Embedding Domain-Specific Languages (DSLs). Our aim is to develop theory and software of expressive and analyzable host languages for embedding domain-specific modeling languages. Our main research effort is on Modelyze , a gradually typed host language for modeling and analyzing cyber-physical systems. See [ PADL'12 , EECS report'12 ]
  • Hybrid Co-Simulation. The main focus is on formalizing hybrid co-simulation semantics for the Functional Mock-up Interface (FMI)  See: [ EMSOFT'13 , HSCC'15 ]
  • EOO Modeling Semantics. We develop static and dynamic semantics for equation-based object-oriented (EOO) modeling languages. David Broman has been part of the Modelica  language design group since 2005. Some results and contributions are on types [ Modelica'06 , GPCE'06 ], higher-order models [ SNE'09 ], and some involvement in the open source tool OpenModelica .
  • Model-Based Machine Learning. This is a rather new initiative, where our aim is to apply our previous experience on equation-based modeling languages to the domain of machine learning. Our current work so far on machine learning has been focused on supervised and unsupervised learning methods in the context of software engineering and automated bug assignment. See [ ESE'15 ] and [ ArXiv'15 ]. In July 2016, we start a new 5 years project Automating System SpEcific Model-Based Learning - ASSEMBLE,  funded by the Swedish foundation for strategic research (SSF). The objective of the project is to develop new probabilistic modeling language abstractions together with new machine learning inference algorithms to enable fast and complex development of smart systems. The project team consists of four researchers: From Uppsala University: Thomas Schön  (main PI) and David Black-Schaffer . From KTH: David Broman  and Joakim Jaldén .

Contact person: David Broman

Learning Machines and Data Science

A learning machine is an autonomous self-regulating open reasoning system that actively learns in an unsupervised and decentralised manner, over multiple domains. Our recent position paper  explains what the learning stack looks like and what kind of learning theory is employed. We employ learning machines for solving important problems in the life sciences, notably in psychology and psychiatry, in collaboration with clinicians at Karolinska University Hospital and with researchers at Stockholm University. Funding is provided by the Swedish Research Council (VR), the Erling-Persson Family Foundation, and the Marianne and Marcus Wallenberg Foundation.

Data science and artificial intelligence-based solutions for intervention in cognitive decline and Alzheimer's is studied in collaboration with Karolinska Institute and Imperial College London, with funding from the European Commission (H2020). We are also co-leading the Liquid Roadmap strategic project within the Innovation Programme Viable Cities , which among its targeted foresight areas has artificial intelligence for smart sustainable cities (2038-2050). Funding is coming from the Swedish Energy Council, Vinnova, and Formas.

Our Ph D students study intelligent networks and edge computing (Akhila Rao), topic modeling in social media (Kambiz Ghoorchian), machine learning for vision programming (Abubakr Karali), and logic formalisms for capturing expectations in real-time systems (Jan Cedervall). We also co-supervise one student (Nils Isacsson) on predictions in Internet-based psychiatry.
Contact person: Magnus Boman

Time-aware Programming

In the research topic programming with time we investigate and develop real-time programming language primitives that are inherent parts of low level programming languages. The programmer declaratively incorporates timing constraints in the programming code. It is then the task of the compiler and the run-time system to guarantee that the timing specifications are fulfilled. Some of the main research topics are:

  • Time-aware Programming Constructs. We investigate different programming constructs for expressing time, time stamping, and timing constraints in low-level programming languages. This work is part of an international effort called Time-Aware Applications, Computers, and Communication Systems (TAACCS). See  and this NIST report . See also our work on relaxing the synchronous programming approach for mixed-criticality systems [ RTAS'14 ].
  • Timing analysis and Verification. The challenge concerns formal verification of specified timing constraint. Such verification requires a sound timing model of the hardware and software system that are being analyzed. See our preliminary work on interactive timing analysis [ EECS report'14 ], WCET-Aware dynamic code management on scratchpads [ RTAS'14 ], and approximate synchrony, a modeling and verification approach for almost synchronized systems [ CAV'15 ].

Contact person: David Broman


In a project called Unison, we develop a new approach to code generation based on constraint programming. Instead of generating code using customized and greedy heuristics, we generate from the input program a mathematical model that captures the constraints incurred by instruction selection, register allocation, and instruction scheduling. The model is then solved (potentially to optimaliy) using an off-the-self constraint solver. From the solution we then derive the assembly code.

Contact person: Christian Schulte