Shaping the Foundations of Programming Languages