Johannes Borgström
Senior Lecturer/Associate Professor at Department of Information Technology; Division of Computing Science
- Telephone:
- +46 18 471 31 65
- E-mail:
- johannes.borgstrom@it.uu.se
- Visiting address:
- Hus 10, Regementsvägen 10
- Postal address:
- Box 337
751 05 UPPSALA
- CV:
- Download CV
- ORCID:
- 0000-0001-5990-5742
Short presentation
I am an associate professor in computing science at the IT department, and responsible for the Bachelor's programme in computer science. My research is in the fields of programming languages and process calculi, with an emphasis on semantics. I am currently working on probabilistic programming languages for Bayesian modelling and inference, and applications of e-graphs to compiler optimization.
Keywords
- programming languages
- semantics
- probabilistic programming
- compilation
- process calculi
- program equivalences
- operational semantics
Biography
I work in the programming languages research group mainly on projects related to semantics of functional and communicating programming languages (eg Erlang) as well as probabilistic (Bayesian) modelling languages.
My previous work in the concurrency group was on the Applied Process Calculi project, where we developed families of small formal modelling languages, called psi calculi, for different kinds of parallel, distributed and communicating systems. The core research issue was to provide expressive modelling languages that still satisfy certain essential meta-theoretical properties: a natural equivalence on systems must be a congruence and entail certain algebraic laws (e.g. commutativity of variable binders and commutative monoid laws for parallel composition). For absolute certainty, the proofs were machine-checked using an interactive theorem prover.
During my postdoc at Microsoft Research in Cambridge I worked on three modern programming language features: probabilistic observations for Bayesian modelling, transactional memory for safe parallel imperative programming, and dependent types for verification of stateful programs.
I did my PhD with Uwe Nestmann at EPFL, on process calculi for cryptographic protocols. My main contribution was the definition of novel program equivalences (environment-sensitive notions of bisimulation) that soundly approximate observational process equivalence, and proofs of correspondences and differences between them, solving several open problems.
During my time as a PhD student, I also applied the techniques and formalisms of process calculi to other domains, namely modelling and verification of peer-to-peer distributed hash tables, models for modal security logics and visualization of message exchanges.

Publications
Selection of publications
-
Modal Logics for Nominal Transition Systems
Part of Logical Methods in Computer Science, 2021
- DOI for Modal Logics for Nominal Transition Systems
- Download full text 1 (pdf) of Modal Logics for Nominal Transition Systems
- Download full text 2 (pdf) of Modal Logics for Nominal Transition Systems
-
Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
Part of Programming Languages And Systems, ESOP 2021, p. 404-431, 2021
- DOI for Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
- Download full text (pdf) of Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
-
Universal probabilistic programming offers a powerful approach to statistical phylogenetics
Part of Communications Biology, 2021
- DOI for Universal probabilistic programming offers a powerful approach to statistical phylogenetics
- Download full text (pdf) of Universal probabilistic programming offers a powerful approach to statistical phylogenetics
-
Deriving Probability Density Functions from Probabilistic Functional Programs
Part of Logical Methods in Computer Science, 2017
-
A Lambda-Calculus Foundation for Universal Probabilistic Programming
Part of SIGPLAN notices, p. 33-46, 2016
- DOI for A Lambda-Calculus Foundation for Universal Probabilistic Programming
- Download full text (pdf) of A Lambda-Calculus Foundation for Universal Probabilistic Programming
-
Part of Mathematical Structures in Computer Science, 2014
Recent publications
-
Modal Logics for Nominal Transition Systems
Part of Logical Methods in Computer Science, 2021
- DOI for Modal Logics for Nominal Transition Systems
- Download full text 1 (pdf) of Modal Logics for Nominal Transition Systems
- Download full text 2 (pdf) of Modal Logics for Nominal Transition Systems
-
Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
Part of Programming Languages And Systems, ESOP 2021, p. 404-431, 2021
- DOI for Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
- Download full text (pdf) of Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
-
Universal probabilistic programming offers a powerful approach to statistical phylogenetics
Part of Communications Biology, 2021
- DOI for Universal probabilistic programming offers a powerful approach to statistical phylogenetics
- Download full text (pdf) of Universal probabilistic programming offers a powerful approach to statistical phylogenetics
-
Deriving Probability Density Functions from Probabilistic Functional Programs
Part of Logical Methods in Computer Science, 2017
-
Part of Formal Techniques for Distributed Objects, Components, and Systems, p. 179-193, 2017
All publications
Articles in journal
-
Modal Logics for Nominal Transition Systems
Part of Logical Methods in Computer Science, 2021
- DOI for Modal Logics for Nominal Transition Systems
- Download full text 1 (pdf) of Modal Logics for Nominal Transition Systems
- Download full text 2 (pdf) of Modal Logics for Nominal Transition Systems
-
Universal probabilistic programming offers a powerful approach to statistical phylogenetics
Part of Communications Biology, 2021
- DOI for Universal probabilistic programming offers a powerful approach to statistical phylogenetics
- Download full text (pdf) of Universal probabilistic programming offers a powerful approach to statistical phylogenetics
-
Deriving Probability Density Functions from Probabilistic Functional Programs
Part of Logical Methods in Computer Science, 2017
-
A Sorted Semantic Framework for Applied Process Calculi
Part of Logical Methods in Computer Science, p. 1-49, 2016
- DOI for A Sorted Semantic Framework for Applied Process Calculi
- Download full text (pdf) of A Sorted Semantic Framework for Applied Process Calculi
-
Modal Logics for Nominal Transition Systems
Part of Archive of Formal Proofs, 2016
-
A Lambda-Calculus Foundation for Universal Probabilistic Programming
Part of SIGPLAN notices, p. 33-46, 2016
- DOI for A Lambda-Calculus Foundation for Universal Probabilistic Programming
- Download full text (pdf) of A Lambda-Calculus Foundation for Universal Probabilistic Programming
-
Broadcast psi-calculi with an application to wireless protocols
Part of Software and Systems Modeling, p. 201-216, 2015
- DOI for Broadcast psi-calculi with an application to wireless protocols
- Download full text (pdf) of Broadcast psi-calculi with an application to wireless protocols
-
The Psi-Calculi Workbench: A Generic Tool for Applied Process Calculi
Part of ACM Transactions on Embedded Computing Systems, 2015
- DOI for The Psi-Calculi Workbench: A Generic Tool for Applied Process Calculi
- Download full text (pdf) of The Psi-Calculi Workbench: A Generic Tool for Applied Process Calculi
-
Part of Mathematical Structures in Computer Science, 2014
-
Measure transformer semantics for Bayesian machine learning
Part of Logical Methods in Computer Science, p. 11, 2013
-
Roles, stacks, histories: A triple for Hoare
Part of Journal of functional programming (Print), p. 159-207, 2011
-
A Complete Symbolic Bisimilarity for an Extended Spi Calculus
Part of Electronic Notes in Theoretical Computer Science, p. 3-20, 2009
- DOI for A Complete Symbolic Bisimilarity for an Extended Spi Calculus
- Download full text (pdf) of A Complete Symbolic Bisimilarity for an Extended Spi Calculus
-
A Chart Semantics for the Pi-Calculus
Part of Electronic Notes in Theoretical Computer Science, p. 3-29, 2008
- DOI for A Chart Semantics for the Pi-Calculus
- Download full text (pdf) of A Chart Semantics for the Pi-Calculus
-
Static Equivalence is Harder than Knowledge
Part of Electronic Notes in Theoretical Computer Science, p. 45-57, 2006
- DOI for Static Equivalence is Harder than Knowledge
- Download full text (pdf) of Static Equivalence is Harder than Knowledge
-
On bisimulations for the spi calculus
Part of Mathematical Structures in Computer Science, p. 487-552, 2005
Chapters in book
-
Roles, Stacks, Histories: A Triple for Hoare
Part of Reflections on the Work of C.A.R. Hoare, p. 71-100, Springer, 2010
Conference papers
-
Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
Part of Programming Languages And Systems, ESOP 2021, p. 404-431, 2021
- DOI for Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
- Download full text (pdf) of Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
-
Part of Formal Techniques for Distributed Objects, Components, and Systems, p. 179-193, 2017
-
Fabular: Regression formulas as probabilistic programming
Part of Proc. 43rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, p. 271-283, 2016
- DOI for Fabular: Regression formulas as probabilistic programming
- Download full text (pdf) of Fabular: Regression formulas as probabilistic programming
-
Probabilistic programs as spreadsheet queries
Part of Programming Languages and Systems, p. 1-25, 2015
- DOI for Probabilistic programs as spreadsheet queries
- Download full text (pdf) of Probabilistic programs as spreadsheet queries
-
Tabular: a schema-driven probabilistic programming language
Part of Proc. 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, p. 321-334, 2014
- DOI for Tabular: a schema-driven probabilistic programming language
- Download full text (pdf) of Tabular: a schema-driven probabilistic programming language
-
A Sorted Semantic Framework for Applied Process Calculi (extended abstract)
Part of Trustworthy Global Computing, p. 103-118, 2014
-
A Model-Learner Pattern for Bayesian Reasoning
Part of Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p. 403-416, 2013
-
Deriving Probability Density Functions from Probabilistic Functional Programs
Part of Tools and Algorithms for the Construction and Analysis of Systems, p. 508-522, 2013
- DOI for Deriving Probability Density Functions from Probabilistic Functional Programs
- Download full text (pdf) of Deriving Probability Density Functions from Probabilistic Functional Programs
-
Bayesian Inference Using Data Flow Analysis
Part of ESEC/FSE '13, p. 92-102, 2013
-
A Parametric Tool for Applied Process Calculi
Part of 13th International Conference on Application of Concurrency to System Design (ACSD 2013), p. 180-185, 2013
-
Measure Transformer Semantics for Bayesian Machine Learning
Part of 20th European Symposium on Programming, p. 77-96, 2011
- DOI for Measure Transformer Semantics for Bayesian Machine Learning
- Download full text (pdf) of Measure Transformer Semantics for Bayesian Machine Learning
-
Verified Stateful Programs with Substructural State and Hoare Types
Part of Proc. 5th ACM Workshop on Programming Languages Meets Program Verification, p. 15-26, 2011
-
A Compositional Theory for STM Haskell
Part of Proceedings of the 2nd ACM SIGPLAN symposium on Haskell, p. 69-80, 2009
-
Timed calculus of cryptographic communication
Part of Formal Aspects in Security and Trust, p. 16-30, 2007
-
Calculus of Cryptographic Communication
2006
-
Verifying a Structured Peer-to-Peer Overlay Network: The Static Case
Part of Global Computing: IST/FET International Workshop, GC 2004 Rovereto, Italy, March 9-12, 2004, p. 250-265, 2005
- DOI for Verifying a Structured Peer-to-Peer Overlay Network: The Static Case
- Download full text (pdf) of Verifying a Structured Peer-to-Peer Overlay Network: The Static Case
-
Symbolic Bisimulation in the Spi Calculus
Part of CONCUR 2004, p. 161-176, 2004
- DOI for Symbolic Bisimulation in the Spi Calculus
- Download full text (pdf) of Symbolic Bisimulation in the Spi Calculus
Conference proceedings (editor)
-
2014
-
2013