Nate Foster
Assistant Professor of Computer Science - Cornell University
Network Programming With Frenetic
Abstract:
Recent years have
seen growing interest in high-level languages for programming networks.
But the design of these languages has been largely ad hoc, driven more
by the needs of applications and the capabilities of network devices
than by foundational principles. The lack of a semantic foundation has
left language designers with little guidance in determining how to
incorporate new features, and programmers without a means to reason
precisely about their code.
This talk will present Frenetic, a
new language for programming networks that is based on a solid
mathematical foundation and comes equipped with a sound and complete
equational theory. The first part of the talk will present the design
of the language, including primitives for filtering, modifying, and
transmitting packets; operators for combining programs in parallel and
in sequence; and a Kleene star operator for iterating programs. The
next part of the talk will explore the semantic underpinnings of the
language, by developing a formal connection between Frenetic programs
and well studied mathematical structures known as Kleene Algebras with
Tests (KAT). The final part of the talk will show this connection can
be leveraged to address practical problems including efficient
compilation and automatic verification.
Joint work with
Carolyn Anderson (Swarthmore College), Arjun Guha (UMass Amherst),
Jean-Baptiste Jeannin (CMU), Dexter Kozen (Cornell), Matthew
Milano (Cornell), Cole Schlesinger (Princeton), Alexandra Silva
(Nijmegen), Steffen Smolka (Cornell), Laure Thompson (Cornell), and
Dave Walker (Princeton).
Bio: Nate Foster is an Assistant
Professor of Computer Science at Cornell University. His research
focuses on developing language abstractions and tools for building
reliable systems. He received a PhD in Computer Science from the
University of Pennsylvania in 2009, an MPhil in History and Philosophy
of Science from Cambridge University in 2008, and a BA in Computer
Science from Williams College in 2001. His awards include a Sloan
Research Fellowship, an NSF CAREER Award, a Most Influential POPL Paper
Award, a Tien '72 Teaching Award, a Yahoo! Academic Career Enhancement
Award, and the Morris and Dorothy Rubinoff Award.