Programmerbara paketprocessorer och P4 som programmeringsspråk för sådana enheter har fått stort intresse, eftersom deras flexibilitet möjliggör snabb utveckling av en mängd olika applikationer som fungerar i linje takt. Denna flexibilitet, i kombination med komplexiteten hos enheter och nätverk, ökar dock chansen att introducera subtila buggar som är svåra att upptäcka manuellt. Ännu värre, detta är en domän där buggar kan få katastrofala konsekvenser, men formella analysverktyg för P4-program / nätverk saknas. Vi hävdar att formella analysverktyg måste baseras på en formell semantik av målspråket, snarare än på dess informella specifikation. I detta syfte tillhandahåller vi en exekverbar formell semantik av P4-språket inom ramen för K. Baserat på denna semantik tillhandahåller K en tolk och olika analysverktyg, inklusive en symbolisk modellkontroll och en deduktiv programkontrollant för P4. Detta papper ger en översikt över vår formella K semantik av P4, samt flera P4 språkdesign frågor som vi hittade under vår formaliseringsprocess. Vi diskuterar också vissa applikationer som är ett resultat av de verktyg som tillhandahålls av K för P4-programmerare och nätverksadministratörer samt språkdesigners och kompilatorutvecklare, såsom upptäckt av oportabel kod, utforskning av tillståndsutrymme för P4-program och nätverk, felsökning med hjälp av symbolisk körning, verifiering av dataplan, programverifiering och översättningsvalidering.
P4K REF är en formell semantik för P4, skriven i K-ramverket.
P 4 K : A Formal Semantics of P 4 and Applications