Computing automates the world, programming models automate computing.

The design and implementation of high-level (domain-specific) programming abstractions are key in automating complex “non-functional” concerns, thus enabling desired software system’s properties such as reliability or security and privacy “by-design”.

Recurring research themes include:

  • trading expressivity versus reasoning
  • formal definitions
  • proving key properties
  • implementing efficient prototypes
  • evaluating expressiveness
  • evaluating effects on program design quality
  • evaluating application performance

Courses:

Recent Papers:

  • PRDTs: Composable Knowledge-Based Consensus Protocols with Replicated Data Types. J Haas, R Mogk, A Bieniusa, M Mezini.
  • Compiling with Arrays. D Richter, T Böhler, P Weisenburger, M Mezini.
  • Lore: A programming model for verifiably safe local-first software. J Haas, R Mogk, E Yanakieva, A Bieniusa, M Mezini.
  • Prisma: A Tierless Language for Enforcing Contract-client Protocols in Decentralized Applications. D Richter, D Kretzler, P Weisenburger, G Salvaneschi, S Faust, M Mezini.
  • Using rewrite strategies for efficient functional automatic differentiation. T Böhler, D Richter, M Mezini.
  • A direct-style effect notation for sequential and parallel programs. D Richter, T Böhler, P Weisenburger, M Mezini.
  • Algebraic Replicated Data Types: Programming Secure Local-First Software C Kuessner, R Mogk, AK Wickert, M Mezini.