Programming Theory

Research activities

Programming theory is the study of Computer Programming. At the University of Bergen we focus on the use of mathematical theory (such as logic, formal languages, universal algebra and category theory) in understanding programming concepts. The concepts may be from specification or programming languages, or be more general software structuring mechanisms and patterns. The activity ranges from theoretical studies via building of support tools to practical software development. Much of the activity is focused on algebraic methods, including non-determinism, but we are also working with Java technologies.

Main content

Research areas

  • Algebraic specification

    • Partial algebras and other approaches to partiality (guarded algebras, multi-algebras)

    • Multi-algebras as models of non-determinism and generalisation of algebras/co-algebras

  • Logic

    • Logic programming

    • Logic for non-determinism (multi-algebras, power structures)

    • Epistemic logic (multi-agent systems, epistemic events, cryptographic protocols)

    • Proof search, geometric logic

  • Model-Driven Engineering (MDE)

    • Formalisation of concepts in Model-Driven Engineering

    • Modelling and Metamodelling
    • Model transformation

    • Version control of models

  • Programming technologies

    • Java

    • XML