A confluence occurs when two rivers flow together; downstream the combined forces gather strength and propel their waters forward with increased vigor. In academic research, according to Varghese, a confluence occurs after some trigger, perhaps a discovery or a change in technology, and brings two previously separate branches of research together. In this talk, I will discuss confluences in programming languages research. Here, confluences often occur when basic research finds application in some important new domain. Two prime examples from my own career involve the confluence of research in type theory and systems security, triggered by new theoretical tools for reasoning about programming language safety, and the confluence of formal methods and networking, triggered by the rise of data centers. These experiences may shed light on what to teach our students and what is next for programming languages research.
David Walker joined the Princeton CS department in 2002, was granted tenure in 2008 and was appointed a full professor in 2013. He received his doctoral and master’s degrees in computer science from Cornell, and his bachelor’s from Queen’s University in Kingston, Ontario. During sabbaticals from Princeton, he has served as a visiting researcher at Microsoft Research in Redmond (2008) and in Cambridge (2009), and as Associate Visiting Faculty at the University of Pennsylvania (2015-2016). Professor Walker studies programming language theory, design and implementation, with an emphasis on the design of domain-specific languages. His awards include an NSF Career Award, a Sloan Fellowship and the 2015 ACM SIGPLAN Robin Milner Young Researcher Award. Together with his collaborators, he has also won a 10-year retrospective award for the most influential paper at ACM POPL 1998, a best paper award at ACM PLDI 2007, and a Community Award for his work at USENIX NSDI 2013. He served as an associate editor for ACM TOPLAS from 2007-2015 and as program chair for ACM POPL in 2015.