Design and analysis of languages for real-time and embedded systems, including very high-level parallel modeling languages for heterogeneous systems with massively parallel accelerators. Static program analysis for embedded systems, in particular Worst-Case Execution Time analysis and associated techniques. The combination of static analysis and testing. Program slicing.
Design and analysis of languages for real-time and embedded systems, including very high-level parallel modeling languages for heterogeneous systems with massively parallel accelerators. Static program analysis for embedded systems, in particular Worst-Case Execution Time analysis and associated techniques. The combination of static analysis and testing. Program slicing.
Overview:
The Programming Languages group was founded in 2000. It conducts research mostly in static program analysis. The research is focused on software for embedded systems. In particular the group has a track record in Worst-Case Execution Time (WCET) analysis, where it has been one of the leading groups regarding the part of of WCET analysis that aims to automatically find constraints on the program flow, like bounds on the number of iterations for loops, and infeasible path constraints. The group has developed and implemented a number of algorithms for this purpose, representing different tradeoffs between performance and precision. These algorithms are all based on abstract interpretation, where the group also has contributed to the design of abstract numerical domains.
Today the group performs research in the area of program slicing, where it has contributed with theoretical results as well as with improved algorithms. Another area of current interest is the combination of static analysis and testing. A third area is very high-level languages for executable models/specifications of massively parallel algorithms.
The group is known for its open source tool SWEET (SWEdish Execution Time tool), which is a tool mainly for deriving program flow constraints. The group is also responsible for the widely used Mälardalen Benchmarks, which is a collection of C programs used for benchmarking and evaluation of WCET analysis tools and algorithms. Lately the group has also created the tool Racer, which performs so-called "May Happen in Parallel" analysis for detection of possible race conditions in concurrent software.
The group is active in collaborations both nationally and internationally. It has coordinated two EU projects in the past, and it also chaired a Cost Action on timing analysis that involved 100+ researchers from 20 European countries. The group has also participated in three ITEA projects. Nationally the group has beeen involved in several collaborations with both academic and industrial partners, examples are RISE/SICS and Ericsson.
Overlapping Flows (Feb 2024) Husni Khanfar
HERO-ML: A Very High-Level Array Language for Executable Modelling of Data Parallel Algorithms (Jun 2023) Björn Lisper, Linus Källberg ARRAY 2023 (ARRAY '23)
HERO-ML Specification (Feb 2023) Björn Lisper, Linus Källberg
Fast and incremental computation of weak control closure (Dec 2022) Abu Naser Masud 29th Static Analysis Symposium (SAS 2022)
The Duality in Computing SSA Programs and Control Dependency (Aug 2022) Abu Naser Masud IEEE Transactions on Software Engineering (TSE)
On the Computation of Interprocedural Weak Control Closure (Apr 2022) Abu Naser Masud, Björn Lisper ACM SIGPLAN 2022 International Conference on Compiler Construction (CC '22)