{"title":"为可靠的网络应用程序设计数据包编程语言","authors":"R. Duncan","doi":"10.1145/3301326.3301362","DOIUrl":null,"url":null,"abstract":"Domain-specific languages for network packet processing applications emphasize representing domain entities, such as packet protocol headers, and emphasize program speed, due to the relentless increase in packet transmission rates. In addition to these concerns, packetC makes app reliability a major aspect of its design, not least because in a single second a silent programming error can send a million packets into oblivion or send sensitive information to inappropriate destinations. Our contributions to constructing a reliable packet processing language are: (1) overhauling C-style structure bitfields to eliminate ambiguity, (2) constraining enumeration variables to guarantee type-safe properties, (3) providing novel reference variables for databases and regex sets and doing so in a way in which they cannot be dereferenced to inappropriate objects, and (4) offering a coercive try/catch exception handling scheme to ensure that system-thrown exceptions are wrapped within a try/catch structure for exception handling. In a broad sense our contribution is making reliability a central design criterion in designing a DSL for packet processing, an application domain in which performance has gotten much more attention.","PeriodicalId":294040,"journal":{"name":"Proceedings of the 2018 VII International Conference on Network, Communication and Computing","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-12-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Designing Packetc Programming Language for Reliable Network Apps\",\"authors\":\"R. Duncan\",\"doi\":\"10.1145/3301326.3301362\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Domain-specific languages for network packet processing applications emphasize representing domain entities, such as packet protocol headers, and emphasize program speed, due to the relentless increase in packet transmission rates. In addition to these concerns, packetC makes app reliability a major aspect of its design, not least because in a single second a silent programming error can send a million packets into oblivion or send sensitive information to inappropriate destinations. Our contributions to constructing a reliable packet processing language are: (1) overhauling C-style structure bitfields to eliminate ambiguity, (2) constraining enumeration variables to guarantee type-safe properties, (3) providing novel reference variables for databases and regex sets and doing so in a way in which they cannot be dereferenced to inappropriate objects, and (4) offering a coercive try/catch exception handling scheme to ensure that system-thrown exceptions are wrapped within a try/catch structure for exception handling. In a broad sense our contribution is making reliability a central design criterion in designing a DSL for packet processing, an application domain in which performance has gotten much more attention.\",\"PeriodicalId\":294040,\"journal\":{\"name\":\"Proceedings of the 2018 VII International Conference on Network, Communication and Computing\",\"volume\":\"22 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-12-14\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 2018 VII International Conference on Network, Communication and Computing\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3301326.3301362\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2018 VII International Conference on Network, Communication and Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3301326.3301362","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Designing Packetc Programming Language for Reliable Network Apps
Domain-specific languages for network packet processing applications emphasize representing domain entities, such as packet protocol headers, and emphasize program speed, due to the relentless increase in packet transmission rates. In addition to these concerns, packetC makes app reliability a major aspect of its design, not least because in a single second a silent programming error can send a million packets into oblivion or send sensitive information to inappropriate destinations. Our contributions to constructing a reliable packet processing language are: (1) overhauling C-style structure bitfields to eliminate ambiguity, (2) constraining enumeration variables to guarantee type-safe properties, (3) providing novel reference variables for databases and regex sets and doing so in a way in which they cannot be dereferenced to inappropriate objects, and (4) offering a coercive try/catch exception handling scheme to ensure that system-thrown exceptions are wrapped within a try/catch structure for exception handling. In a broad sense our contribution is making reliability a central design criterion in designing a DSL for packet processing, an application domain in which performance has gotten much more attention.