programming languages
type theory
type systems
functional programming
dependently-typed functional programming
compilers
runtime systems
module systems
mechanised meta-theory
verified/certified programming
proof assistants
automated theorem provers
automated reasoning
logical frameworks