View on GitHub

Programming Languages and Theory of Computation

Unofficial website for the PLTC section at DIKU

Introduction

Welcome to the PLTC Section. We perform research in programming language technology and in the theory of computation. Much of our work involves topics in the intersection of programming language theory (e.g., algorithmic aspects of programming and formal verification), and applications (e.g., computer security and privacy, systems, distributed ledger technology, and fintech).

Research interests

We perform research in programming language technology (including ties to program analysis, type systems and transformation, compiler and language design, high-performance computing, and meta-programming), and in the theory of computation (including ties to automata and computability theory, logic, term rewriting and lambda calculus, and reversible and quantum computing).

Much of our work involves topics in the intersection of programming languages and theory (e.g., algorithmic aspects of programming and formal verification), and applications (e.g., computer security and privacy, systems, distributed ledger technology, and Fintech).

Teaching

We offer courses for the bachelor and master’s programmes in Computer Science and Communication & IT. For the MSc programme, we suggest the study tracks in Programming Language and Systems.

Projects

TBA

Suggestions for bachelors projects, masters projects, or POCS

Futhark is a research language developed by various PLTC researchers. See this curated list of GitHub issues for suggestions on projects related to working on the compiler itself. Contact Troels Henriksen, Cosmin Oancea, or Martin Elsman if you wish to work on one of thse.

GPU programming

The Problem Based Benchmark Suite is a collection of benchmark programs that implement various algorithms using parallel programming. Currently only implementations for multicore CPUs are supported. It would be interesting to port some of these benchmarks to low-level GPU programming languages, such as CUDA. While some of the benchmark programs are fairly trivial, others are highly irregular and will require some cleverness to implement efficiently on GPUs. This means the size of the project can be adjusted based on the time available. Contact: Troels Henriksen.