Over the past decade, we have witnessed an extraordinary shift in how networks are designed and built. In the first phase of the transformation, network owners took charge of the control plane, using architectures based on software-defined networking to specify routing, traffic engineering, security, etc. In the second phase, they took charge of the data-plane, building on recent innovations at the hardware level to define the packet-processing behavior of routers, switches, NICs, etc. Together, these changes mean that networks are no longer closed platforms with capabilities defined by standards bodies and equipment vendors. Instead, they are deeply programmable platforms that can be customized by network owners to suit their needs. Behaviors that were formerly codified in standards documents are instead being realized as programs, specified in a high-level language and partitioned across the platform by a compiler. This talk will highlight the growing role that programming languages are playing in modern networks, including how ideas from functional programming can help address some of the most challenging problems that remain unsolved.
Nate Foster is an Professor of Computer Science at Cornell University and a Platform Architect at Intel. The goal of his research is to develop languages and tools that make it easy for programmers to build secure and reliable systems. His current work focuses on the design and implementation of languages for programming software-defined networks. He received a PhD in Computer Science from the University of Pennsylvania, an MPhil in History and Philosophy of Science from Cambridge University, and a BA in Computer Science from Williams College. His awards include a Sloan Research Fellowship, an NSF CAREER Award, the SIGCOMM Rising Star Award, and paper awards at POPL, ICFP, NSDI, CoNEXT, and SIGCOMM.