Recent years have seen game semantics emerge as a robust semantic paradigm. It has been used to construct the first fully abstract models for a wide spectrum of programming languages, previously out of
reach of denotational semantics. Game semantics models computation as an exchange of moves between two players, representing respectively the program and its computational environment. Accordingly, a program
is interpreted as a strategy in a game corresponding to its type. I will give an overview of the latest developments in the area, which have most recently led to a fully abstract model of Middleweight Java. This is joint work with Nikos Tzevelekos (Queen Mary) presented at POPL’14.