Software
I have been part in designing or contributed to the following freely available software:- Miking. Miking is a language framework for
efficient and sound construction of domain-specific languages. In
particular, the focus is on mathematical modeling languages,
including probabilistic programming languages and equation-based
modeling languages. The Miking framework is the main research
platform in my group, and includes research on topics such as
program tuning, self-learning compilation, language composition,
unified type systems, partial evaluation, programatic modeling,
resolvable ambiguity, and more. See the Miking website, the vision paper, or visit the Github page: https://github.com/miking-lang.
- Modelyze. Modelyze (MODEl and anaLYZE) is a host language designed for modeling and analysis of cyber-physical systems (CPS). Modelyze is not a modeling language itself, but a host language where domain-specific languages (DSLs) can be embedded. It has been tested and evaluated on equation-based object-oriented DSLs, used for modeling of physical systems. The source code, which is distributed under GPL license,
can
be downloaded here. The repository can also be cloned from GitHub. The latest information about Modelyze is available in the
PEPM 2018 paper. Modelyze is based on a language called MKL, which was
developed in
my Ph.D. thesis.
Please see the main website www.modelyze.org.
- Timed C Compiler (KTC). Timed C is an extension to C with a small set of programming primitives for programming of real-time systems. The source-to-source compiler is developed by my former Ph.D. student Saranya Natarajan. See the Github pages for the KTC compiler and the end-to-end toolchain. See also our RTAS 2018 and RTSS 2019 papers.
- KTA. KTA is a timing analyzer tool that performs static analysis of machine code. It can perform interactive timing analysis and abstract search-based WCET Analysis. The main design and foundation of the software was developed by David. Please see the Github pages and the arXiv paper that gives an overview of the tool.
- FlexPRET. FlexPRET is a 5-stage fine-grained multithreaded RISC-V processor that is designed especially for real-time and mixed-criticality systems. The actual software has been developed by Michael Zimmer, whom I mentored during my time at UC Berkeley. Please see the FlexPRET Github page and our RTAS 2014 paper.
- OpenModelica. An open-source Modelica-based modeling and
simulation environment. I contributed with some parts of the compiler,
such as a prototype implementation for physical unit checking. See
the OpenModelica homepage.
- Ustring. A unicode string library for adding simple and
powerful Unicode support to the OCaml language. The source code, which
is distributed under the new BSD license, can
be downloaded
here. Module
documentation is available online.
- Velvet Studio. An advanced graphical music editor/tracker
developed for the MS-DOS platform during years 1994-1998. The
self-extracting executable for the DOS platform
is freely
available for download. To run the program on e.g., Windows or Mac
OS, use the DOS
emulator DOSBox. The Velvet
Studio user manual
is available
as a pdf-file.
- Mnemonic major system generator. A small script that generates words according to the Mnemonic major system in Swedish. For the latest generated tables, see this page. The script is available as open source here.
This is a personal web page. More information.