Advanced programming language theory