首页 > 最新文献

Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development最新文献

英文 中文
Generic packet descriptions: verified parsing and pretty printing of low-level data 通用包描述:经过验证的解析和低级数据的漂亮打印
M. V. Geest, Wouter Swierstra
Complex protocols describing the communication or storage of binary data are difficult to describe precisely. This paper presents a collection of data types for describing a binary data formats; the corresponding parser and pretty printer are generated automatically from a data description. By embedding these data types in a general purpose dependently typed programming language, we can verify once and for all that the parsers and pretty printers generated in this style are correct by construction. To validate our results, we show how to write a verified parser of the IPv4 network protocol.
描述二进制数据通信或存储的复杂协议很难精确描述。本文提出了一组用于描述二进制数据格式的数据类型集合;相应的解析器和漂亮的打印机从数据描述自动生成。通过将这些数据类型嵌入到通用的依赖类型编程语言中,我们可以一劳永逸地验证以这种风格生成的解析器和漂亮的打印机在构造上是正确的。为了验证我们的结果,我们将展示如何编写经过验证的IPv4网络协议解析器。
{"title":"Generic packet descriptions: verified parsing and pretty printing of low-level data","authors":"M. V. Geest, Wouter Swierstra","doi":"10.1145/3122975.3122979","DOIUrl":"https://doi.org/10.1145/3122975.3122979","url":null,"abstract":"Complex protocols describing the communication or storage of binary data are difficult to describe precisely. This paper presents a collection of data types for describing a binary data formats; the corresponding parser and pretty printer are generated automatically from a data description. By embedding these data types in a general purpose dependently typed programming language, we can verify once and for all that the parsers and pretty printers generated in this style are correct by construction. To validate our results, we show how to write a verified parser of the IPv4 network protocol.","PeriodicalId":166018,"journal":{"name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116151206","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Type-directed diffing of structured data 结构化数据的定向类型差分
Victor Cacciari Miraldo, Pierre-Évariste Dagand, Wouter Swierstra
The Unix diff utility that compares lines of text is used pervasively by version control systems. Yet certain changes to a program may be difficult to describe accurately in terms of modifications to individual lines of code. As a result, observing changes at such a fixed granularity may lead to unnecessary conflicts between different edits. This paper presents a generic representation for describing transformations between algebraic data types and a non-deterministic algorithm for computing such representations. These representations can be used to give a more accurate account of modifications made to algebraic data structures - and the abstract syntax trees of computer programs in particular - as opposed to only considering modifications between their textual representations.
Unix中比较文本行数的diff实用程序被版本控制系统广泛使用。然而,对程序的某些更改可能很难根据对单个代码行的修改来准确描述。因此,以如此固定的粒度观察更改可能会导致不同编辑之间不必要的冲突。本文提出了一种描述代数数据类型之间转换的通用表示和计算这种表示的非确定性算法。这些表示可以用来更准确地描述对代数数据结构的修改——尤其是计算机程序的抽象语法树——而不是只考虑它们的文本表示之间的修改。
{"title":"Type-directed diffing of structured data","authors":"Victor Cacciari Miraldo, Pierre-Évariste Dagand, Wouter Swierstra","doi":"10.1145/3122975.3122976","DOIUrl":"https://doi.org/10.1145/3122975.3122976","url":null,"abstract":"The Unix diff utility that compares lines of text is used pervasively by version control systems. Yet certain changes to a program may be difficult to describe accurately in terms of modifications to individual lines of code. As a result, observing changes at such a fixed granularity may lead to unnecessary conflicts between different edits. This paper presents a generic representation for describing transformations between algebraic data types and a non-deterministic algorithm for computing such representations. These representations can be used to give a more accurate account of modifications made to algebraic data structures - and the abstract syntax trees of computer programs in particular - as opposed to only considering modifications between their textual representations.","PeriodicalId":166018,"journal":{"name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125403645","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Structured asynchrony with algebraic effects 具有代数效应的结构化异步
Daan Leijen
Algebraic effect handlers generalize many control-flow abstractions that are implemented specially in most languages, like exception handling, iterators, or backtracking. In this article, we show how we can implement full support for asynchronous programming as a library using just algebraic effect handlers. The consistent type driven approach also leads naturally to powerful abstractions like block-scoped interleaving, cancellation, and timeout's that are lacking in other major asynchronous frameworks. We also introduce the concept of ambient state to reason about state that is local to the current strand of asynchronous execution.
代数效果处理程序概括了许多在大多数语言中专门实现的控制流抽象,如异常处理、迭代器或回溯。在本文中,我们将展示如何仅使用代数效果处理程序作为库实现对异步编程的完全支持。一致类型驱动的方法还自然地带来了强大的抽象,如块范围的交错、取消和超时,这些都是其他主要异步框架所缺乏的。我们还引入了环境状态的概念来推断当前异步执行链的本地状态。
{"title":"Structured asynchrony with algebraic effects","authors":"Daan Leijen","doi":"10.1145/3122975.3122977","DOIUrl":"https://doi.org/10.1145/3122975.3122977","url":null,"abstract":"Algebraic effect handlers generalize many control-flow abstractions that are implemented specially in most languages, like exception handling, iterators, or backtracking. In this article, we show how we can implement full support for asynchronous programming as a library using just algebraic effect handlers. The consistent type driven approach also leads naturally to powerful abstractions like block-scoped interleaving, cancellation, and timeout's that are lacking in other major asynchronous frameworks. We also introduce the concept of ambient state to reason about state that is local to the current strand of asynchronous execution.","PeriodicalId":166018,"journal":{"name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128333947","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 29
Driving types into PHP (invited talk) 将类型导入PHP(特邀演讲)
A. Kennedy
Facebook’s main website, ads platform, and much of its internal tooling is implemented in PHP, a language not known for elegance or best practice in programming language design. Five years ago Facebook embarked on an ambitious project to migrate its code base to Hack, which takes the syntax of PHP, removes the worst features, and adds static typing and modern constructs for asynchronous programming. Its type system is an interesting mixture of ideas from Java, C#, Scala, and Caml, with flow-sensitive typing thrown in to capture typical PHP idioms. Type-driven development is now more than accepted: developers demand ever richer types, and evolution of the codebase goes hand-in-hand with evolution of the type system and programming language.
Facebook的主要网站、广告平台和它的大部分内部工具都是用PHP实现的,这种语言在编程语言设计中并不以优雅或最佳实践而闻名。五年前,Facebook开始了一个雄心勃勃的项目,将其代码库迁移到Hack,它采用PHP的语法,去掉最糟糕的功能,并为异步编程添加静态类型和现代结构。它的类型系统有趣地混合了来自Java、c#、Scala和Caml的思想,并引入了流敏感类型来捕捉典型的PHP习惯用法。类型驱动的开发现在已经被广泛接受:开发人员需要更丰富的类型,并且代码库的发展与类型系统和编程语言的发展密切相关。
{"title":"Driving types into PHP (invited talk)","authors":"A. Kennedy","doi":"10.1145/3122975.3127322","DOIUrl":"https://doi.org/10.1145/3122975.3127322","url":null,"abstract":"Facebook’s main website, ads platform, and much of its internal tooling is implemented in PHP, a language not known for elegance or best practice in programming language design. Five years ago Facebook embarked on an ambitious project to migrate its code base to Hack, which takes the syntax of PHP, removes the worst features, and adds static typing and modern constructs for asynchronous programming. Its type system is an interesting mixture of ideas from Java, C#, Scala, and Caml, with flow-sensitive typing thrown in to capture typical PHP idioms. Type-driven development is now more than accepted: developers demand ever richer types, and evolution of the codebase goes hand-in-hand with evolution of the type system and programming language.","PeriodicalId":166018,"journal":{"name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","volume":"62 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130650372","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development 第二届ACM SIGPLAN类型驱动发展国际研讨会论文集
{"title":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","authors":"","doi":"10.1145/3122975","DOIUrl":"https://doi.org/10.1145/3122975","url":null,"abstract":"","PeriodicalId":166018,"journal":{"name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","volume":"44 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129180741","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1