eCommons

 

A (Co)algebraic Approach to Programming and Verifying Computer Networks

dc.contributor.authorSmolka, Steffen Juilf
dc.contributor.chairFoster, Nate
dc.contributor.committeeMemberKozen, Dexter Campbell
dc.contributor.committeeMemberKleinberg, Robert David
dc.date.accessioned2020-06-23T18:00:06Z
dc.date.available2020-06-23T18:00:06Z
dc.date.issued2019-12
dc.description316 pages
dc.description.abstractAs computer networks have grown into some of the most complex and critical computing systems today, the means of configuring them have not kept up: they remain manual, low-level, and ad-hoc. This makes network operations expensive and network outages due to misconfigurations commonplace. The thesis of this dissertation is that high-level programming languages and formal methods can make network configuration dramatically easier and more reliable. The dissertation consists of three parts. In the first part, we develop algorithms for compiling a network programming language with high-level abstractions to low-level network configurations, and introduce a symbolic data structure that makes compilation efficient in practice. In the second part, we develop foundations for a probabilistic network programming language using measure and domain theory, showing that continuity can be exploited to approximate (statistics of) packet distributions algorithmically. Based on this foundation and the theory of Markov chains, we then design a network verification tool that can reason about fault-tolerance and other probabilistic properties, scaling to data-center-size networks. In the third part, we introduce a general-purpose (co)algebraic framework for designing and reasoning about programming languages, and show that it permits an almost linear-time decision procedure for program equivalence. We hope that the framework will serve as a foundation for efficient verification tools, for networks and beyond, in the future.
dc.identifier.doihttps://doi.org/10.7298/1dpd-c128
dc.identifier.otherSmolka_cornellgrad_0058F_11762
dc.identifier.otherhttp://dissertations.umi.com/cornellgrad:11762
dc.identifier.urihttps://hdl.handle.net/1813/70019
dc.language.isoen
dc.rightsAttribution-NoDerivatives 4.0 International
dc.rights.urihttps://creativecommons.org/licenses/by-nd/4.0/
dc.subjectcoalgebra
dc.subjectcompilers
dc.subjectdomain-specific programming languages
dc.subjectKleene Algebra
dc.subjectsoftware defined networking
dc.subjectverification
dc.titleA (Co)algebraic Approach to Programming and Verifying Computer Networks
dc.typedissertation or thesis
dcterms.licensehttps://hdl.handle.net/1813/59810
thesis.degree.disciplineComputer Science
thesis.degree.levelDoctor of Philosophy
thesis.degree.namePh. D., Computer Science

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Smolka_cornellgrad_0058F_11762.pdf
Size:
5.74 MB
Format:
Adobe Portable Document Format