首页 > 最新文献

Summit on Advances in Programming Languages最新文献

英文 中文
I Can Parse You: Grammars for Dialogs 我可以解析你:对话语法
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.6
Martin Hirzel, Louis Mandel, Avraham Shinnar, Jérôme Siméon, M. Vaziri
Humans and computers increasingly converse via natural language. Those conversations are moving from today's simple question answering and command-and-control to more complex dialogs. Developers must specify those dialogs. This paper explores how to assist developers in this specification. We map out the staggering variety of applications for human-computer dialogs and distill it into a catalog of flow patterns. Based on that, we articulate the requirements for dialog programming models and offer our vision for satisfying these requirements using grammars. If our approach catches on, computers will soon parse you to better assist you in your daily life.
人类和计算机越来越多地通过自然语言进行交流。这些对话正在从今天的简单问答和命令控制转向更复杂的对话。开发人员必须指定这些对话框。本文探讨了如何在这个规范中帮助开发人员。我们绘制出人机对话的各种应用程序,并将其提炼成流程模式的目录。在此基础上,我们阐明了对话编程模型的需求,并提供了使用语法满足这些需求的愿景。如果我们的方法流行起来,计算机将很快解析你,以便在日常生活中更好地帮助你。
{"title":"I Can Parse You: Grammars for Dialogs","authors":"Martin Hirzel, Louis Mandel, Avraham Shinnar, Jérôme Siméon, M. Vaziri","doi":"10.4230/LIPIcs.SNAPL.2017.6","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.6","url":null,"abstract":"Humans and computers increasingly converse via natural language. Those conversations are moving from today's simple question answering and command-and-control to more complex dialogs. Developers must specify those dialogs. This paper explores how to assist developers in this specification. We map out the staggering variety of applications for human-computer dialogs and distill it into a catalog of flow patterns. Based on that, we articulate the requirements for dialog programming models and offer our vision for satisfying these requirements using grammars. If our approach catches on, computers will soon parse you to better assist you in your daily life.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122460358","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
Programming Language Tools and Techniques for 3D Printing 3D打印的编程语言工具和技术
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.10
Chandrakana Nandi, A. Caspi, D. Grossman, Zachary Tatlock
We propose a research agenda to investigate programming language techniques for improving affordable, end-user desktop manufacturing processes such as 3D printing. Our goal is to adapt programming languages tools and extend the decades of research in industrial, high-end CAD/CAM in order to help make affordable desktop manufacturing processes more accurate, fast, reliable, and accessible to end-users. We focus on three major areas where 3D printing can benefit from programming language tools: design synthesis, optimizing compilation, and runtime monitoring. We present preliminary results on synthesizing editable CAD models from difficult-to-edit surface meshes, discuss potential new compilation strategies, and propose runtime monitoring techniques. We conclude by discussing additional near-future directions we intend to pursue.
我们提出了一项研究议程,以调查编程语言技术,以改善可负担得起的终端用户桌面制造工艺,如3D打印。我们的目标是适应编程语言工具,并扩展数十年来在工业、高端CAD/CAM领域的研究,以帮助使最终用户能够负担得起的桌面制造过程更准确、快速、可靠和可访问。我们专注于3D打印可以从编程语言工具中受益的三个主要领域:设计合成,优化编译和运行时监控。我们介绍了从难以编辑的表面网格合成可编辑CAD模型的初步结果,讨论了潜在的新编译策略,并提出了运行时监控技术。最后,我们将讨论我们打算追求的其他近期方向。
{"title":"Programming Language Tools and Techniques for 3D Printing","authors":"Chandrakana Nandi, A. Caspi, D. Grossman, Zachary Tatlock","doi":"10.4230/LIPIcs.SNAPL.2017.10","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.10","url":null,"abstract":"We propose a research agenda to investigate programming language techniques for improving affordable, end-user desktop manufacturing processes such as 3D printing. Our goal is to adapt programming languages tools and extend the decades of research in industrial, high-end CAD/CAM in order to help make affordable desktop manufacturing processes more accurate, fast, reliable, and accessible to end-users. We focus on three major areas where 3D printing can benefit from programming language tools: design synthesis, optimizing compilation, and runtime monitoring. We present preliminary results on synthesizing editable CAD models from difficult-to-edit surface meshes, discuss potential new compilation strategies, and propose runtime monitoring techniques. We conclude by discussing additional near-future directions we intend to pursue.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117078839","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}
引用次数: 14
Blame Tracking and Type Error Debugging 责任跟踪和类型错误调试
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.2
Sheng Chen, J. P. Campora
In this work, we present an unexpected connection between gradual typing and type error debugging. Namely, we illustrate that gradual typing provides a natural way to defer type errors in statically illtyped programs, providing more feedback than traditional approaches to deferring type errors. When evaluating expressions that lead to runtime type errors, the usefulness of the feedback depends on blame tracking, the defacto approach to locating the cause of such runtime type errors. Unfortunately, blame tracking suffers from the bias problem for type error localization in languages with type inference. We illustrate and formalize the bias problem for blame tracking, present ideas for adapting existing type error debugging techniques to combat this bias, and outline further challenges. 2012 ACM Subject Classification Theory of computation → Type structures
在这项工作中,我们提出了渐进输入和类型错误调试之间的意想不到的联系。也就是说,我们说明渐进式类型提供了一种在静态非类型程序中延迟类型错误的自然方法,提供了比传统方法更多的延迟类型错误的反馈。在评估导致运行时类型错误的表达式时,反馈的有用性取决于责任跟踪,即定位此类运行时类型错误原因的实际方法。不幸的是,在具有类型推理的语言中,责备跟踪存在类型错误定位的偏差问题。我们说明和形式化了偏差问题的责任跟踪,提出了一些想法,以适应现有的类型错误调试技术来对抗这种偏差,并概述了进一步的挑战。2012 ACM学科分类计算理论→类型结构
{"title":"Blame Tracking and Type Error Debugging","authors":"Sheng Chen, J. P. Campora","doi":"10.4230/LIPIcs.SNAPL.2019.2","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.2","url":null,"abstract":"In this work, we present an unexpected connection between gradual typing and type error debugging. Namely, we illustrate that gradual typing provides a natural way to defer type errors in statically illtyped programs, providing more feedback than traditional approaches to deferring type errors. When evaluating expressions that lead to runtime type errors, the usefulness of the feedback depends on blame tracking, the defacto approach to locating the cause of such runtime type errors. Unfortunately, blame tracking suffers from the bias problem for type error localization in languages with type inference. We illustrate and formalize the bias problem for blame tracking, present ideas for adapting existing type error debugging techniques to combat this bias, and outline further challenges. 2012 ACM Subject Classification Theory of computation → Type structures","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121503040","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}
引用次数: 2
Leveraging Sequential Computation for Programming Efficient and Reliable Distributed Systems 利用顺序计算编程高效可靠的分布式系统
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.7
I. Kuraj, Armando Solar-Lezama
While sequential programs represent a simple and natural form for expressing functionality, corresponding distributed implementations get considerably more complex. We examine the possibility of using the sequential computation model for programming distributed systems and requirements for making that possible. The benefits of such an approach include easier specification and reasoning about behaviors in the system, as well as a possibility to directly reuse existing techniques for checking correctness and optimization of sequential programs to produce efficient and reliable distributed implementations.
虽然顺序程序代表了一种简单而自然的表达功能的形式,但相应的分布式实现要复杂得多。我们研究了使用顺序计算模型对分布式系统进行编程的可能性,以及实现这一可能性的需求。这种方法的好处包括更容易规范和推理系统中的行为,以及直接重用现有技术来检查顺序程序的正确性和优化,以产生高效可靠的分布式实现的可能性。
{"title":"Leveraging Sequential Computation for Programming Efficient and Reliable Distributed Systems","authors":"I. Kuraj, Armando Solar-Lezama","doi":"10.4230/LIPIcs.SNAPL.2017.7","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.7","url":null,"abstract":"While sequential programs represent a simple and natural form for expressing functionality, corresponding distributed implementations get considerably more complex. We examine the possibility of using the sequential computation model for programming distributed systems and requirements for making that possible. The benefits of such an approach include easier specification and reasoning about behaviors in the system, as well as a possibility to directly reuse existing techniques for checking correctness and optimization of sequential programs to produce efficient and reliable distributed implementations.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124215117","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}
引用次数: 1
The Next 700 Semantics: A Research Challenge 下一个700个语义:一个研究挑战
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.9
S. Krishnamurthi, B. Lerner, L. Elberty
Modern systems consist of large numbers of languages, frameworks, libraries, APIs
现代系统由大量的语言、框架、库和api组成
{"title":"The Next 700 Semantics: A Research Challenge","authors":"S. Krishnamurthi, B. Lerner, L. Elberty","doi":"10.4230/LIPIcs.SNAPL.2019.9","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.9","url":null,"abstract":"Modern systems consist of large numbers of languages, frameworks, libraries, APIs","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115878310","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}
引用次数: 4
Intermittent Computing: Challenges and Opportunities 间歇性计算:挑战与机遇
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.8
Brandon Lucia, Vignesh Balaji, A. Colin, Kiwan Maeng, E. Ruppel
The maturation of energy-harvesting technology and ultra-low-power computer systems has led to the advent of intermittently-powered, batteryless devices that operate entirely using energy extracted from their environment. Intermittently operating devices present a rich vein of programming languages research challenges and the purpose of this paper is to illustrate these challenges to the PL research community. To provide depth, this paper includes a survey of the hardware and software design space of intermittent computing platforms. On the foundation of these research challenges and the state of the art in intermittent hardware and software, this paper describes several future PL research directions, emphasizing a connection between intermittence, distributed computing, energy-aware programming and compilation, and approximate computing. We illustrate these connections with a discussion of our ongoing work on programming for intermittence, and on building and simulating intermittent distributed systems.
能量收集技术和超低功耗计算机系统的成熟导致了间歇性供电、无电池设备的出现,这些设备完全利用从环境中提取的能量来运行。间歇操作设备呈现出丰富的编程语言研究挑战,本文的目的是向PL研究社区说明这些挑战。为了提供深度,本文包括对间歇性计算平台的硬件和软件设计空间的调查。在这些研究挑战和间歇性硬件和软件的最新技术的基础上,本文描述了几个未来的PL研究方向,强调间歇性,分布式计算,能量感知编程和编译以及近似计算之间的联系。我们通过讨论我们正在进行的关于间歇性编程以及构建和模拟间歇性分布式系统的工作来说明这些联系。
{"title":"Intermittent Computing: Challenges and Opportunities","authors":"Brandon Lucia, Vignesh Balaji, A. Colin, Kiwan Maeng, E. Ruppel","doi":"10.4230/LIPIcs.SNAPL.2017.8","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.8","url":null,"abstract":"The maturation of energy-harvesting technology and ultra-low-power computer systems has led to the advent of intermittently-powered, batteryless devices that operate entirely using energy extracted from their environment. Intermittently operating devices present a rich vein of programming languages research challenges and the purpose of this paper is to illustrate these challenges to the PL research community. To provide depth, this paper includes a survey of the hardware and software design space of intermittent computing platforms. On the foundation of these research challenges and the state of the art in intermittent hardware and software, this paper describes several future PL research directions, emphasizing a connection between intermittence, distributed computing, energy-aware programming and compilation, and approximate computing. We illustrate these connections with a discussion of our ongoing work on programming for intermittence, and on building and simulating intermittent distributed systems.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131948601","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}
引用次数: 151
None, One, Many - What's the Difference, Anyhow? 一个,一个,许多——到底有什么区别?
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.294
F. Steimann
We observe that compared to natural and modelling languages, the differences in expression required to deal with no, one, or many objects in programming languages are particularly pronounced. We identify some problems inherent in type-based unifications of different numbers, and advocate a solution that builds on the introduction of multiplicity as a new grammatical category of programming languages.
我们观察到,与自然语言和建模语言相比,编程语言中处理无、一个或多个对象所需的表达差异特别明显。我们确定了不同数字的基于类型的统一中固有的一些问题,并提倡一种基于引入多样性作为编程语言的新语法类别的解决方案。
{"title":"None, One, Many - What's the Difference, Anyhow?","authors":"F. Steimann","doi":"10.4230/LIPIcs.SNAPL.2015.294","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.294","url":null,"abstract":"We observe that compared to natural and modelling languages, the differences in expression required to deal with no, one, or many objects in programming languages are particularly pronounced. We identify some problems inherent in type-based unifications of different numbers, and advocate a solution that builds on the introduction of multiplicity as a new grammatical category of programming languages.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123176946","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
Programming with "Big Code": Lessons, Techniques and Applications 使用“大代码”编程:课程、技术和应用
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.41
Pavol Bielik, Veselin Raychev, Martin T. Vechev
Programming tools based on probabilistic models of massive codebases (aka "Big Code") promise to solve important programming tasks that were difficult or practically infeasible to address before. However, building such tools requires solving a number of hard problems at the intersection of programming languages, program analysis and machine learning. In this paper we summarize some of our experiences and insights obtained by developing several such probabilistic systems over the last few years (some of these systems are regularly used by thousands of developers worldwide). We hope these observations can provide a guideline for others attempting to create such systems. We also present a prediction approach we find suitable as a starting point for building probabilistic tools, and discuss a practical framework implementing this approach, called Nice2Predict. We release the Nice2Predict framework publicly - the framework can be immediately used as a basis for developing new probabilistic tools. Finally, we present programming applications that we believe will benefit from probabilistic models and should be investigated further.
基于大规模代码库(又名“大代码”)的概率模型的编程工具承诺解决以前难以解决或实际上不可行的重要编程任务。然而,构建这样的工具需要解决编程语言、程序分析和机器学习交叉的许多难题。在本文中,我们总结了我们在过去几年中通过开发几个这样的概率系统获得的一些经验和见解(其中一些系统经常被世界各地成千上万的开发人员使用)。我们希望这些观察结果可以为其他试图创建此类系统的人提供指导。我们还提出了一种我们认为适合作为构建概率工具起点的预测方法,并讨论了实现该方法的实用框架,称为Nice2Predict。我们公开发布了Nice2Predict框架——这个框架可以立即用作开发新的概率工具的基础。最后,我们提出了编程应用程序,我们认为这些应用程序将受益于概率模型,并且应该进一步研究。
{"title":"Programming with \"Big Code\": Lessons, Techniques and Applications","authors":"Pavol Bielik, Veselin Raychev, Martin T. Vechev","doi":"10.4230/LIPIcs.SNAPL.2015.41","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.41","url":null,"abstract":"Programming tools based on probabilistic models of massive codebases (aka \"Big Code\") promise to solve important programming tasks that were difficult or practically infeasible to address before. However, building such tools requires solving a number of hard problems at the intersection of programming languages, program analysis and machine learning. \u0000 \u0000In this paper we summarize some of our experiences and insights obtained by developing several such probabilistic systems over the last few years (some of these systems are regularly used by thousands of developers worldwide). We hope these observations can provide a guideline for others attempting to create such systems. \u0000 \u0000We also present a prediction approach we find suitable as a starting point for building probabilistic tools, and discuss a practical framework implementing this approach, called Nice2Predict. We release the Nice2Predict framework publicly - the framework can be immediately used as a basis for developing new probabilistic tools. Finally, we present programming applications that we believe will benefit from probabilistic models and should be investigated further.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116648736","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}
引用次数: 22
The Dynamic Practice and Static Theory of Gradual Typing 渐进式打字的动态实践与静态理论
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.6
M. Greenberg
We can tease apart the research on gradual types into two `lineages': a pragmatic, implementation-oriented dynamic-first lineage and a formal, type-theoretic, static-first lineage. The dynamic-first lineage's focus is on taming particular idioms - `pre-existing conditions' in untyped programming languages. The static-first lineage's focus is on interoperation and individual type system features, rather than the collection of features found in any particular language. Both appear in programming languages research under the name "gradual typing", and they are in active conversation with each other. What are these two lineages? What challenges and opportunities await the static-first lineage? What progress has been made so far?
我们可以将渐进式类型的研究分为两个“谱系”:一个是实用的、面向实现的动态优先谱系,另一个是正式的、类型论的、静态优先谱系。动态优先谱系的重点是驯服特定的习惯用法——无类型编程语言中的“预先存在的条件”。静态优先继承的重点是互操作和单个类型系统特性,而不是在任何特定语言中发现的特性集合。两者都以“渐进式类型”的名义出现在编程语言的研究中,它们之间的对话也很活跃。这两种血统是什么?静态优先谱系面临着什么样的挑战和机遇?到目前为止取得了哪些进展?
{"title":"The Dynamic Practice and Static Theory of Gradual Typing","authors":"M. Greenberg","doi":"10.4230/LIPIcs.SNAPL.2019.6","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.6","url":null,"abstract":"We can tease apart the research on gradual types into two `lineages': a pragmatic, implementation-oriented dynamic-first lineage and a formal, type-theoretic, static-first lineage. The dynamic-first lineage's focus is on taming particular idioms - `pre-existing conditions' in untyped programming languages. The static-first lineage's focus is on interoperation and individual type system features, rather than the collection of features found in any particular language. Both appear in programming languages research under the name \"gradual typing\", and they are in active conversation with each other. \u0000What are these two lineages? What challenges and opportunities await the static-first lineage? What progress has been made so far?","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121985367","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}
引用次数: 12
Toward Domain-Specific Solvers for Distributed Consistency 面向分布式一致性的特定领域求解器
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.10
L. Kuper, P. Alvaro
To guard against machine failures, modern internet services store multiple replicas of the same application data within and across data centers, which introduces the problem of keeping geo-distributed replicas consistent with one another in the face of network partitions and unpredictable message latency. To avoid costly and conservative synchronization protocols, many real-world systems provide only weak consistency guarantees (e.g., eventual, causal, or PRAM consistency), which permit certain kinds of disagreement among replicas. There has been much recent interest in language support for specifying and verifying such consistency properties. Although these properties are usually beyond the scope of what traditional type checkers or compiler analyses can guarantee, solver-aided languages are up to the task. Inspired by systems like Liquid Haskell [43] and Rosette [42], we believe that close integration between a language and a solver is the right path to consistent-by-construction distributed applications. Unfortunately, verifying distributed consistency properties requires reasoning about transitive relations (e.g., causality or happens-before), partial orders (e.g., the lattice of replica states under a convergent merge operation), and properties relevant to message processing or API invocation (e.g., commutativity and idempotence) that cannot be easily or efficiently carried out by general-purpose SMT solvers that lack native support for this kind of reasoning. We argue that domain-specific SMT-based tools that exploit the mathematical foundations of distributed consistency would enable both more efficient verification and improved ease of use for domain experts. The principle of exploiting domain knowledge for efficiency and expressivity that has borne fruit elsewhere – such as in the development of high-performance domain-specific languages that trade off generality to gain both performance and productivity – also applies here. Languages augmented with domain-specific, consistency-aware solvers would support the rapid implementation of formally verified programming abstractions that guarantee distributed consistency. In the long run, we aim to democratize the development of such domain-specific solvers by creating a framework for domain-specific solver development that brings new theory solver implementation within the reach of programmers who are not necessarily SMT solver internals experts
为了防止机器故障,现代互联网服务在数据中心内部和跨数据中心存储相同应用程序数据的多个副本,这就引入了在面对网络分区和不可预测的消息延迟时保持地理分布副本彼此一致的问题。为了避免代价高昂且保守的同步协议,许多现实世界的系统只提供弱一致性保证(例如,最终一致性、因果一致性或PRAM一致性),这允许副本之间存在某些类型的不一致。最近,人们对指定和验证这种一致性属性的语言支持很感兴趣。尽管这些属性通常超出了传统类型检查器或编译器分析所能保证的范围,但求解器辅助语言可以胜任这项任务。受到Liquid Haskell[43]和Rosette[42]等系统的启发,我们相信语言和求解器之间的紧密集成是实现构建一致性的分布式应用程序的正确途径。不幸的是,验证分布式一致性属性需要对传递关系(例如,因果关系或之前发生的事情)、偏序(例如,收敛合并操作下的副本状态格)以及与消息处理或API调用相关的属性(例如,交换性和幂等性)进行推理,而这些属性无法通过缺乏对此类推理的本机支持的通用SMT求解器轻松或有效地执行。我们认为,利用分布式一致性的数学基础的特定领域的基于smt的工具将使更有效的验证和改进领域专家的易用性成为可能。利用领域知识来提高效率和表达能力的原则在其他地方已经取得了成果——比如在开发高性能领域特定语言时,通过牺牲通用性来获得性能和生产力——也适用于此。增强了特定于领域的、具有一致性感知的求解器的语言将支持经过正式验证的编程抽象的快速实现,从而保证分布式一致性。从长远来看,我们的目标是通过为特定于领域的求解器开发创建一个框架,使这种特定于领域的求解器的开发民主化,从而使不一定是SMT求解器内部专家的程序员能够实现新的理论求解器实现
{"title":"Toward Domain-Specific Solvers for Distributed Consistency","authors":"L. Kuper, P. Alvaro","doi":"10.4230/LIPIcs.SNAPL.2019.10","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.10","url":null,"abstract":"To guard against machine failures, modern internet services store multiple replicas of the same application data within and across data centers, which introduces the problem of keeping geo-distributed replicas consistent with one another in the face of network partitions and unpredictable message latency. To avoid costly and conservative synchronization protocols, many real-world systems provide only weak consistency guarantees (e.g., eventual, causal, or PRAM consistency), which permit certain kinds of disagreement among replicas. There has been much recent interest in language support for specifying and verifying such consistency properties. Although these properties are usually beyond the scope of what traditional type checkers or compiler analyses can guarantee, solver-aided languages are up to the task. Inspired by systems like Liquid Haskell [43] and Rosette [42], we believe that close integration between a language and a solver is the right path to consistent-by-construction distributed applications. Unfortunately, verifying distributed consistency properties requires reasoning about transitive relations (e.g., causality or happens-before), partial orders (e.g., the lattice of replica states under a convergent merge operation), and properties relevant to message processing or API invocation (e.g., commutativity and idempotence) that cannot be easily or efficiently carried out by general-purpose SMT solvers that lack native support for this kind of reasoning. We argue that domain-specific SMT-based tools that exploit the mathematical foundations of distributed consistency would enable both more efficient verification and improved ease of use for domain experts. The principle of exploiting domain knowledge for efficiency and expressivity that has borne fruit elsewhere – such as in the development of high-performance domain-specific languages that trade off generality to gain both performance and productivity – also applies here. Languages augmented with domain-specific, consistency-aware solvers would support the rapid implementation of formally verified programming abstractions that guarantee distributed consistency. In the long run, we aim to democratize the development of such domain-specific solvers by creating a framework for domain-specific solver development that brings new theory solver implementation within the reach of programmers who are not necessarily SMT solver internals experts","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128003007","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
期刊
Summit on Advances in Programming Languages
全部 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