< Terug naar vorige pagina

Publicatie

PλωNK: Functional Probabilistic NetKAT

Tijdschriftbijdrage - Tijdschriftartikel

This work presents P𝜆𝜔NK, a functional probabilistic network programming language that extends Probabilistic NetKAT (PNK). Like PNK, it enables probabilistic modelling of network behaviour, by providing probabilistic choice and infinite iteration (to simulate looping network packets). Yet, unlike PNK, it also offers abstraction and higher-order functions to make programming much more convenient. The formalisation of P𝜆𝜔NK is challenging for two reasons: Firstly, network programming induces multiple side effects (in particular, parallelism and probabilistic choice) which need to be carefully controlled in a functional setting. Our system uses an explicit syntax for thunks and sequencing which makes the interplay of these effects explicit. Secondly, measure theory, the standard domain for formalisations of (continuous) probablistic languages, does not admit higher-order functions. We address this by leveraging 𝜔-Quasi Borel Spaces (𝜔QBSes), a recent advancement in the domain theory of probabilistic programming languages. We believe that our work is not only useful for bringing abstraction to PNK, but that—as part of our contribution—we have developed the meta-theory for a probabilistic language that combines advanced features like higher-order functions, iteration and parallelism, which may inform similar meta-theoretic efforts
Tijdschrift: Proceedings of the ACM on Programming Languages
ISSN: 2475-1421
Issue: POPL
Volume: 4
Jaar van publicatie:2020
Toegankelijkheid:Open