{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,4]],"date-time":"2026-06-04T15:15:48Z","timestamp":1780586148664,"version":"3.54.1"},"publisher-location":"New York, NY, USA","reference-count":45,"publisher":"ACM","license":[{"start":{"date-parts":[[2022,12,6]],"date-time":"2022-12-06T00:00:00Z","timestamp":1670284800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2022,12,9]]},"DOI":"10.1145\/3565475.3569078","type":"proceedings-article","created":{"date-parts":[[2022,12,1]],"date-time":"2022-12-01T23:28:50Z","timestamp":1669937330000},"page":"19-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Reducing P4 language's voluminosity using higher-level constructs"],"prefix":"10.1145","author":[{"given":"Albert Gran","family":"Alcoz","sequence":"first","affiliation":[{"name":"ETH Z\u00fcrich"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Coralie","family":"Busse-Grawitz","sequence":"additional","affiliation":[{"name":"ETH Z\u00fcrich"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Eric","family":"Marty","sequence":"additional","affiliation":[{"name":"ETH Z\u00fcrich"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Laurent","family":"Vanbever","sequence":"additional","affiliation":[{"name":"ETH Z\u00fcrich"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,12,6]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"2007. Jinja Documentation. https:\/\/jinja.palletsprojects.com\/.  2007. Jinja Documentation. https:\/\/jinja.palletsprojects.com\/."},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"crossref","unstructured":"2020. P4 Language Specifications. https:\/\/p4.org\/specs\/.  2020. P4 Language Specifications. https:\/\/p4.org\/specs\/.","DOI":"10.1158\/1538-7445.SABCS19-P4-06-10"},{"key":"e_1_3_2_1_3_1","volume-title":"P4-Learning","year":"2022","unstructured":"2021. Count-Min Sketch Exercise , P4-Learning ( Pulled : 22 September 2022 ). https:\/\/github.com\/nsg-ethz\/p4-learning\/tree\/master\/exercises\/07-Count-Min-Sketch. 2021. Count-Min Sketch Exercise, P4-Learning (Pulled: 22 September 2022). https:\/\/github.com\/nsg-ethz\/p4-learning\/tree\/master\/exercises\/07-Count-Min-Sketch."},{"key":"e_1_3_2_1_4_1","volume-title":"P4-Learning","year":"2022","unstructured":"2021. Heavy-Hitter Detection Exercise , P4-Learning ( Pulled : 22 September 2022 ). https:\/\/github.com\/nsg-ethz\/p4-learning\/tree\/master\/exercises\/06-Heavy_Hitter_Detector. 2021. Heavy-Hitter Detection Exercise, P4-Learning (Pulled: 22 September 2022). https:\/\/github.com\/nsg-ethz\/p4-learning\/tree\/master\/exercises\/06-Heavy_Hitter_Detector."},{"key":"e_1_3_2_1_5_1","unstructured":"2021. Intel Tofino. https:\/\/www.intel.com\/content\/www\/us\/en\/products\/network-io\/programmable-ethernet-switch\/tofino-series.html.  2021. Intel Tofino. https:\/\/www.intel.com\/content\/www\/us\/en\/products\/network-io\/programmable-ethernet-switch\/tofino-series.html."},{"key":"e_1_3_2_1_6_1","volume-title":"P4-Learning","year":"2022","unstructured":"2021. Loss Detection Exercise , P4-Learning ( Pulled : 22 September 2022 ). https:\/\/github.com\/nsg-ethz\/p4-learning\/tree\/master\/exercises\/11-Packet-Loss-Detection. 2021. Loss Detection Exercise, P4-Learning (Pulled: 22 September 2022). https:\/\/github.com\/nsg-ethz\/p4-learning\/tree\/master\/exercises\/11-Packet-Loss-Detection."},{"key":"e_1_3_2_1_7_1","volume-title":"22","author":"Pulled Open Tofino","year":"2022","unstructured":"2021. Open Tofino ( Pulled : 22 September 2022 ). https:\/\/github.com\/barefootnetworks\/Open-Tofino. 2021. Open Tofino (Pulled: 22 September 2022). https:\/\/github.com\/barefootnetworks\/Open-Tofino."},{"key":"e_1_3_2_1_8_1","volume-title":"22","author":"Pulled Compiler","year":"2022","unstructured":"2021. P4 Compiler ( Pulled : 22 September 2022 ). https:\/\/github.com\/p4lang\/p4c. 2021. P4 Compiler (Pulled: 22 September 2022). https:\/\/github.com\/p4lang\/p4c."},{"key":"e_1_3_2_1_9_1","volume-title":"22","author":"Pulled Learning","year":"2022","unstructured":"2021. P4- Learning ( Pulled : 22 September 2022 ). https:\/\/github.com\/nsg-ethz\/p4-learning. 2021. P4-Learning (Pulled: 22 September 2022). https:\/\/github.com\/nsg-ethz\/p4-learning."},{"key":"e_1_3_2_1_10_1","unstructured":"2021. Racket Language. https:\/\/racket-lang.org.  2021. Racket Language. https:\/\/racket-lang.org."},{"key":"e_1_3_2_1_11_1","unstructured":"2022. Abstract Syntax Tree. https:\/\/en.wikipedia.org\/wiki\/Abstract_syntax_tree).  2022. Abstract Syntax Tree. https:\/\/en.wikipedia.org\/wiki\/Abstract_syntax_tree)."},{"key":"e_1_3_2_1_12_1","unstructured":"2022. Arrays in Java. https:\/\/docs.oracle.com\/javase\/tutorial\/java\/nutsandbolts\/arrays.html.  2022. Arrays in Java. https:\/\/docs.oracle.com\/javase\/tutorial\/java\/nutsandbolts\/arrays.html."},{"key":"e_1_3_2_1_13_1","unstructured":"2022. Arrays in Python. https:\/\/docs.python.org\/3\/library\/array.html.  2022. Arrays in Python. https:\/\/docs.python.org\/3\/library\/array.html."},{"key":"e_1_3_2_1_14_1","unstructured":"2022. Constructors in Object-Oriented Programming. https:\/\/en.wikipedia.org\/wiki\/Constructor_(object-oriented_programming).  2022. Constructors in Object-Oriented Programming. https:\/\/en.wikipedia.org\/wiki\/Constructor_(object-oriented_programming)."},{"key":"e_1_3_2_1_15_1","unstructured":"2022. Control Flow Statements in Java. https:\/\/docs.oracle.com\/javase\/tutorial\/java\/nutsandbolts\/flow.html.  2022. Control Flow Statements in Java. https:\/\/docs.oracle.com\/javase\/tutorial\/java\/nutsandbolts\/flow.html."},{"key":"e_1_3_2_1_16_1","unstructured":"2022. Control Flow Tools in Python. https:\/\/docs.python.org\/3\/tutorial\/controlflow.html.  2022. Control Flow Tools in Python. https:\/\/docs.python.org\/3\/tutorial\/controlflow.html."},{"key":"e_1_3_2_1_17_1","unstructured":"2022. In-Place Algorithm. https:\/\/en.wikipedia.org\/wiki\/In-place_algorithm.  2022. In-Place Algorithm. https:\/\/en.wikipedia.org\/wiki\/In-place_algorithm."},{"key":"e_1_3_2_1_18_1","unstructured":"2022. Python Constructors. https:\/\/www.javatpoint.com\/python-constructors).  2022. Python Constructors. https:\/\/www.javatpoint.com\/python-constructors)."},{"key":"e_1_3_2_1_19_1","unstructured":"2022. Source Lines of Code. https:\/\/en.wikipedia.org\/wiki\/Source_lines_of_code).  2022. Source Lines of Code. https:\/\/en.wikipedia.org\/wiki\/Source_lines_of_code)."},{"key":"e_1_3_2_1_20_1","unstructured":"2022. The Halting Problem. https:\/\/en.wikipedia.org\/wiki\/Halting_problem.  2022. The Halting Problem. https:\/\/en.wikipedia.org\/wiki\/Halting_problem."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/6448"},{"key":"e_1_3_2_1_22_1","volume-title":"USENIX NSDI.","author":"Alcoz Albert Gran","unstructured":"Albert Gran Alcoz , Alexander Dietm\u00fcller , and Laurent Vanbever . 2020. SP-PIFO: Approximating Push-in First-out Behaviors Using Strict-priority Queues . In USENIX NSDI. Santa Clara, CA, USA . Albert Gran Alcoz, Alexander Dietm\u00fcller, and Laurent Vanbever. 2020. SP-PIFO: Approximating Push-in First-out Behaviors Using Strict-priority Queues. In USENIX NSDI. Santa Clara, CA, USA."},{"key":"e_1_3_2_1_23_1","unstructured":"Pat Bosshart Dan Daly Glen Gibb Martin Izzard Nick McKeown Jennifer Rexford Cole Schlesinger Dan Talayco Amin Vahdat George Varghese etal 2014. P4: Programming Protocol-independent Packet Processors. (2014).  Pat Bosshart Dan Daly Glen Gibb Martin Izzard Nick McKeown Jennifer Rexford Cole Schlesinger Dan Talayco Amin Vahdat George Varghese et al. 2014. P4: Programming Protocol-independent Packet Processors. (2014)."},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"crossref","unstructured":"Xiaoqi Chen. 2020. Implementing AES Encryption on Programmable Switches via Scrambled Lookup Tables. In ACM SPIN. Virtual Event.  Xiaoqi Chen. 2020. Implementing AES Encryption on Programmable Switches via Scrambled Lookup Tables. In ACM SPIN. Virtual Event.","DOI":"10.1145\/3405669.3405819"},{"key":"e_1_3_2_1_25_1","volume-title":"Yaron Koral, Jennifer Rexford, Ori Rottenstreich, Steven A Monetti, and Tzuu-Yi Wang.","author":"Chen Xiaoqi","year":"2019","unstructured":"Xiaoqi Chen , Shir Landau Feibish , Yaron Koral, Jennifer Rexford, Ori Rottenstreich, Steven A Monetti, and Tzuu-Yi Wang. 2019 . Fine-Grained Queue Measurement in the Data Plane. In ACM CoNEXT. Orlando, Florida, USA. Xiaoqi Chen, Shir Landau Feibish, Yaron Koral, Jennifer Rexford, Ori Rottenstreich, Steven A Monetti, and Tzuu-Yi Wang. 2019. Fine-Grained Queue Measurement in the Data Plane. In ACM CoNEXT. Orlando, Florida, USA."},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3387514.3405865"},{"key":"e_1_3_2_1_27_1","volume-title":"Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt.","author":"Felleisen Matthias","year":"2015","unstructured":"Matthias Felleisen , Robert Bruce Findler , Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. 2015 . The Racket Manifesto. In SNAPL. Asilomar, CA, USA. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. 2015. The Racket Manifesto. In SNAPL. Asilomar, CA, USA."},{"key":"e_1_3_2_1_28_1","unstructured":"Matthew Flatt and PLT. 2021. The Racket Reference. https:\/\/docs.racket-lang.org\/reference\/index.html.  Matthew Flatt and PLT. 2021. The Racket Reference. https:\/\/docs.racket-lang.org\/reference\/index.html."},{"key":"e_1_3_2_1_29_1","volume-title":"Rui Miao, Yu Zhou, Bingchuan Tian, Chen Sun, Dennis Cai, Ming Zhang, and Minlan Yu.","author":"Gao Jiaqi","year":"2020","unstructured":"Jiaqi Gao , Ennan Zhai , Hongqiang Harry Liu , Rui Miao, Yu Zhou, Bingchuan Tian, Chen Sun, Dennis Cai, Ming Zhang, and Minlan Yu. 2020 . Lyra : A Cross-Platform Language and Compiler for Data Plane Programming on Heterogeneous ASICs. In ACM SIGCOMM. Virtual . Jiaqi Gao, Ennan Zhai, Hongqiang Harry Liu, Rui Miao, Yu Zhou, Bingchuan Tian, Chen Sun, Dennis Cai, Ming Zhang, and Minlan Yu. 2020. Lyra: A Cross-Platform Language and Compiler for Data Plane Programming on Heterogeneous ASICs. In ACM SIGCOMM. Virtual."},{"key":"e_1_3_2_1_30_1","volume-title":"Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta.","author":"Gao Xiangyu","year":"2020","unstructured":"Xiangyu Gao , Taegyun Kim , Michael D Wong , Divya Raghunathan , Aatish Kishan Varma , Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta. 2020 . Switch code generation using program synthesis. In ACM SIGCOMM. 44--61. Xiangyu Gao, Taegyun Kim, Michael D Wong, Divya Raghunathan, Aatish Kishan Varma, Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta. 2020. Switch code generation using program synthesis. In ACM SIGCOMM. 44--61."},{"key":"e_1_3_2_1_31_1","volume-title":"Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta.","author":"Gao Xiangyu","year":"2020","unstructured":"Xiangyu Gao , Taegyun Kim , Michael D Wong , Divya Raghunathan , Aatish Kishan Varma , Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta. 2020 . Switch Code Generation Using Program Synthesis. In ACM SIGCOMM. Virtual . Xiangyu Gao, Taegyun Kim, Michael D Wong, Divya Raghunathan, Aatish Kishan Varma, Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta. 2020. Switch Code Generation Using Program Synthesis. In ACM SIGCOMM. Virtual."},{"key":"e_1_3_2_1_32_1","volume-title":"ACM SIGCOMM.","author":"Alcoz Albert Gran","unstructured":"Albert Gran Alcoz , Martin Strohmeier , Vincent Lenders , and Laurent Vanbever . 2022. Aggregate-Based Congestion Control for Pulse-Wave DDoS Defense . In ACM SIGCOMM. Amsterdam, The Netherlands . Albert Gran Alcoz, Martin Strohmeier, Vincent Lenders, and Laurent Vanbever. 2022. Aggregate-Based Congestion Control for Pulse-Wave DDoS Defense. In ACM SIGCOMM. Amsterdam, The Netherlands."},{"key":"e_1_3_2_1_33_1","volume-title":"Sonata: Query-driven Streaming Network Telemetry. In ACM SIGCOMM.","author":"Gupta Arpit","year":"2018","unstructured":"Arpit Gupta , Rob Harrison , Marco Canini , Nick Feamster , Jennifer Rexford , and Walter Willinger . 2018 . Sonata: Query-driven Streaming Network Telemetry. In ACM SIGCOMM. Budapest, Hungary . Arpit Gupta, Rob Harrison, Marco Canini, Nick Feamster, Jennifer Rexford, and Walter Willinger. 2018. Sonata: Query-driven Streaming Network Telemetry. In ACM SIGCOMM. Budapest, Hungary."},{"key":"e_1_3_2_1_34_1","volume-title":"Elements of Software Science","author":"Halstead Maurice H","unstructured":"Maurice H Halstead . 1977. Elements of Software Science . Elsevier North-Holland . Maurice H Halstead. 1977. Elements of Software Science. Elsevier North-Holland."},{"key":"e_1_3_2_1_35_1","volume-title":"Jennifer Rexford, David Walker, and Rob Harrison.","author":"Hogan Mary","year":"2020","unstructured":"Mary Hogan , Shir Landau-Feibish , Mina Tahmasbi Arashloo , Jennifer Rexford, David Walker, and Rob Harrison. 2020 . Elastic Switch Programming with P4All. In ACM HotNets. Virtual . Mary Hogan, Shir Landau-Feibish, Mina Tahmasbi Arashloo, Jennifer Rexford, David Walker, and Rob Harrison. 2020. Elastic Switch Programming with P4All. In ACM HotNets. Virtual."},{"key":"e_1_3_2_1_36_1","volume-title":"Maria Apostolaki, Alberto Dainotti, Stefano Vissicchio, and Laurent Vanbever.","author":"Holterbach Thomas","year":"2019","unstructured":"Thomas Holterbach , Edgar Costa Molero , Maria Apostolaki, Alberto Dainotti, Stefano Vissicchio, and Laurent Vanbever. 2019 . Blink : Fast Connectivity Recovery Entirely in the Data Plane. In USENIX NSDI. Boston, MA, USA. Thomas Holterbach, Edgar Costa Molero, Maria Apostolaki, Alberto Dainotti, Stefano Vissicchio, and Laurent Vanbever. 2019. Blink: Fast Connectivity Recovery Entirely in the Data Plane. In USENIX NSDI. Boston, MA, USA."},{"key":"e_1_3_2_1_37_1","unstructured":"Vladimir I Levenshtein etal 1966. Binary Codes Capable of Correcting Deletions Insertions and Reversals. In Doklady Physics. Soviet Union.  Vladimir I Levenshtein et al. 1966. Binary Codes Capable of Correcting Deletions Insertions and Reversals. In Doklady Physics. Soviet Union."},{"key":"e_1_3_2_1_38_1","unstructured":"Steve McConnell. 2004. Code Complete. Pearson Education.  Steve McConnell. 2004. Code Complete. Pearson Education."},{"key":"e_1_3_2_1_39_1","volume-title":"USENIX Security.","author":"Meier Roland","unstructured":"Roland Meier , Petar Tsankov , Vincent Lenders , Laurent Vanbever , and Martin Vechev . 2018. NetHide: Secure and Practical Network Topology Obfuscation . In USENIX Security. Baltimore, MD, USA . Roland Meier, Petar Tsankov, Vincent Lenders, Laurent Vanbever, and Martin Vechev. 2018. NetHide: Secure and Practical Network Topology Obfuscation. In USENIX Security. Baltimore, MD, USA."},{"key":"e_1_3_2_1_40_1","volume-title":"pcube: Primitives for Network Data Plane Programming","author":"Shah Rinku","unstructured":"Rinku Shah , Aniket Shirke , Akash Trehan , Mythili Vutukuru , and Purushottam Kulkarni . 2018. pcube: Primitives for Network Data Plane Programming . In IEEE ICNP. Cambridge , UK. Rinku Shah, Aniket Shirke, Akash Trehan, Mythili Vutukuru, and Purushottam Kulkarni. 2018. pcube: Primitives for Network Data Plane Programming. In IEEE ICNP. Cambridge, UK."},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2934872.2934900"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3452296.3472903"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"crossref","unstructured":"Hardik Soni Myriana Rifai Praveen Kumar Ryan Doenges and Nate Foster. 2020. Composing Dataplane Programs with &mu;P4. In ACM SIGCOMM. Virtual.  Hardik Soni Myriana Rifai Praveen Kumar Ryan Doenges and Nate Foster. 2020. Composing Dataplane Programs with &mu;P4. In ACM SIGCOMM. Virtual.","DOI":"10.1145\/3387514.3405872"},{"key":"e_1_3_2_1_44_1","first-page":"P4","volume":"202","author":"The","unstructured":"The P4 Language Consortium. 202 1. P4 - 16 Language Specification. https:\/\/p4.org\/p4-spec\/docs\/P4-16-v1.2.2.html. The P4 Language Consortium. 2021. P4-16 Language Specification. https:\/\/p4.org\/p4-spec\/docs\/P4-16-v1.2.2.html.","journal-title":"Language Consortium."},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"crossref","unstructured":"Yu Zhou and Jun Bi. 2017. ClickP4: Towards Modular Programming of P4. (2017).  Yu Zhou and Jun Bi. 2017. ClickP4: Towards Modular Programming of P4. (2017).","DOI":"10.1145\/3123878.3132000"}],"event":{"name":"CoNEXT '22: The 18th International Conference on emerging Networking EXperiments and Technologies","location":"Rome Italy","acronym":"CoNEXT '22","sponsor":["SIGCOMM ACM Special Interest Group on Data Communication"]},"container-title":["Proceedings of the 5th International Workshop on P4 in Europe"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3565475.3569078","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3565475.3569078","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:51:00Z","timestamp":1750182660000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3565475.3569078"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,12,6]]},"references-count":45,"alternative-id":["10.1145\/3565475.3569078","10.1145\/3565475"],"URL":"https:\/\/doi.org\/10.1145\/3565475.3569078","relation":{},"subject":[],"published":{"date-parts":[[2022,12,6]]},"assertion":[{"value":"2022-12-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}