Tomas Petricek (Cambridge) Title: Context-aware programming languages Abstract Modern computer programs do not run in the void. They run in rich environments that provide important data sources, services and other functionality that is required by the programs. For example, mobile applications access GPS locations, call server-side code over the network, access data from public REST-based services and so on. Yet, programming languages often assume that the initial context is an empty set. In this talk, I'll cover two research directions that aim to make programming languages more context-aware. In the first part of the talk, I look at type providers - a mechanism that integrates external data sources in the type system of a programming language, so that the language "understands" the outside world. In the second part, I'll discuss how this relates to our ongoing work on coeffects - a type system for checking how the external context is used.