首页 > 最新文献

Summit on Advances in Programming Languages最新文献

英文 中文
New Directions for Network Verification 网络验证的新方向
Pub Date : 2015-05-01 DOI: 10.4230/LIPIcs.SNAPL.2015.209
Aurojit Panda, K. Argyraki, Shmuel Sagiv, Michael Schapira, S. Shenker
Network verification has recently gained popularity in the programming languages and verification community. Much of the recent work in this area has focused on verifying the behavior of simple networks, whose actions are dictated by static, immutable rules configured ahead of time. However, in reality, modern networks contain a variety of middleboxes, whose behavior is affected both by their configuration and by mutable state updated in response to packets received by them. In this position paper we critically review recent progress on network verification, propose some next steps towards a more complete form of network verification, dispel some myths about networks, provide a more formal description of our approach, and end with a discussion of the formal questions posed to this community by the network verification agenda.
网络验证最近在编程语言和验证社区中得到了普及。该领域最近的大部分工作都集中在验证简单网络的行为上,这些网络的行为是由事先配置的静态、不可变的规则决定的。然而,在现实中,现代网络包含各种各样的中间盒,其行为既受其配置的影响,也受响应其接收的数据包而更新的可变状态的影响。在这篇立场文件中,我们批判性地回顾了网络验证的最新进展,提出了一些下一步的步骤,以实现更完整的网络验证形式,消除了一些关于网络的神话,对我们的方法进行了更正式的描述,最后讨论了网络验证议程向这个社区提出的正式问题。
{"title":"New Directions for Network Verification","authors":"Aurojit Panda, K. Argyraki, Shmuel Sagiv, Michael Schapira, S. Shenker","doi":"10.4230/LIPIcs.SNAPL.2015.209","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.209","url":null,"abstract":"Network verification has recently gained popularity in the programming languages and verification community. Much of the recent work in this area has focused on verifying the behavior of simple networks, whose actions are dictated by static, immutable rules configured ahead of time. However, in reality, modern networks contain a variety of middleboxes, whose behavior is affected both by their configuration and by mutable state updated in response to packets received by them. In this position paper we critically review recent progress on network verification, propose some next steps towards a more complete form of network verification, dispel some myths about networks, provide a more formal description of our approach, and end with a discussion of the formal questions posed to this community by the network verification agenda.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129409399","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}
引用次数: 15
The Racket Manifesto 球拍宣言
Pub Date : 2015-05-01 DOI: 10.4230/LIPIcs.SNAPL.2015.113
M. Felleisen, R. Findler, M. Flatt, S. Krishnamurthi, Eli Barzilay, J. McCarthy, Sam Tobin-Hochstadt
The creation of a programming language calls for guiding principles that point the developers to goals. This article spells out the three basic principles behind the 20-year development of Racket. First, programming is about stating and solving problems, and this activity normally takes place in a context with its own language of discourse; good programmers ought to formulate this language as a programming language. Hence, Racket is a programming language for creating new programming languages. Second, by following this language-oriented approach to programming, systems become multi-lingual collections of interconnected components. Each language and component must be able to protect its specific invariants. In support, Racket offers protection mechanisms to implement a full language spectrum, from C-level bit manipulation to soundly typed extensions. Third, because Racket considers programming as problem solving in the correct language, Racket also turns extra-linguistic mechanisms into linguistic constructs, especially mechanisms for managing resources and projects. The paper explains these principles and how Racket lives up to them, presents the evaluation framework behind the design process, and concludes with a sketch of Racket's imperfections and opportunities for future improvements.
编程语言的创建需要指导原则,为开发人员指明目标。本文阐述了球拍20年发展背后的三个基本原则。首先,编程是关于陈述和解决问题的,这种活动通常发生在具有自己话语语言的上下文中;优秀的程序员应该将这种语言表述为一种编程语言。因此,Racket是一种用于创建新编程语言的编程语言。其次,通过遵循这种面向语言的编程方法,系统成为相互连接的组件的多语言集合。每种语言和组件都必须能够保护其特定的不变量。在支持方面,Racket提供了保护机制来实现完整的语言范围,从c级的位操作到健全类型的扩展。第三,因为Racket认为编程是用正确的语言解决问题,所以它还把语言外的机制转化为语言结构,尤其是管理资源和项目的机制。本文解释了这些原则以及Racket是如何实现这些原则的,介绍了设计过程背后的评估框架,最后概述了Racket的缺陷和未来改进的机会。
{"title":"The Racket Manifesto","authors":"M. Felleisen, R. Findler, M. Flatt, S. Krishnamurthi, Eli Barzilay, J. McCarthy, Sam Tobin-Hochstadt","doi":"10.4230/LIPIcs.SNAPL.2015.113","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.113","url":null,"abstract":"The creation of a programming language calls for guiding principles that point the developers to goals. This article spells out the three basic principles behind the 20-year development of Racket. First, programming is about stating and solving problems, and this activity normally takes place in a context with its own language of discourse; good programmers ought to formulate this language as a programming language. Hence, Racket is a programming language for creating new programming languages. Second, by following this language-oriented approach to programming, systems become multi-lingual collections of interconnected components. Each language and component must be able to protect its specific invariants. In support, Racket offers protection mechanisms to implement a full language spectrum, from C-level bit manipulation to soundly typed extensions. Third, because Racket considers programming as problem solving in the correct language, Racket also turns extra-linguistic mechanisms into linguistic constructs, especially mechanisms for managing resources and projects. The paper explains these principles and how Racket lives up to them, presents the evaluation framework behind the design process, and concludes with a sketch of Racket's imperfections and opportunities for future improvements.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126519000","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}
引用次数: 68
Everything You Want to Know About Pointer-Based Checking 你想知道的关于指针检查的一切
Pub Date : 2015-05-01 DOI: 10.4230/LIPIcs.SNAPL.2015.190
Santosh Nagarakatte, Milo M. K. Martin, S. Zdancewic
Lack of memory safety in C/C++ has resulted in numerous security vulnerabilities and serious bugs in large software systems. This paper highlights the challenges in enforcing memory safety for C/C++ programs and progress made as part of the SoftBoundCETS project. We have been exploring memory safety enforcement at various levels - in hardware, in the compiler, and as a hardware-compiler hybrid - in this project. Our research has identified that maintaining metadata with pointers in a disjoint metadata space and performing bounds and use-after-free checking can provide comprehensive memory safety. We describe the rationale behind the design decisions and its ramifications on various dimensions, our experience with the various variants that we explored in this project, and the lessons learned in the process. We also describe and analyze the forthcoming Intel Memory Protection Extensions (MPX) that provides hardware acceleration for disjoint metadata and pointer checking in mainstream hardware, which is expected to be available later this year.
C/ c++中内存安全性的缺乏导致了大型软件系统中大量的安全漏洞和严重的错误。本文强调了在加强C/ c++程序的内存安全方面所面临的挑战,以及作为softboundcts项目的一部分所取得的进展。在这个项目中,我们一直在探索不同级别的内存安全实施——硬件、编译器和硬件编译器的混合。我们的研究表明,在不相交的元数据空间中使用指针维护元数据,并执行边界和free后使用检查可以提供全面的内存安全性。我们描述了设计决策背后的基本原理及其在各个维度上的分支,我们在这个项目中探索的各种变体的经验,以及在这个过程中吸取的教训。我们还描述和分析了即将推出的英特尔内存保护扩展(MPX),该扩展为主流硬件中的不连接元数据和指针检查提供硬件加速,预计将于今年晚些时候推出。
{"title":"Everything You Want to Know About Pointer-Based Checking","authors":"Santosh Nagarakatte, Milo M. K. Martin, S. Zdancewic","doi":"10.4230/LIPIcs.SNAPL.2015.190","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.190","url":null,"abstract":"Lack of memory safety in C/C++ has resulted in numerous security vulnerabilities and serious bugs in large software systems. This paper highlights the challenges in enforcing memory safety for C/C++ programs and progress made as part of the SoftBoundCETS project. We have been exploring memory safety enforcement at various levels - in hardware, in the compiler, and as a hardware-compiler hybrid - in this project. Our research has identified that maintaining metadata with pointers in a disjoint metadata space and performing bounds and use-after-free checking can provide comprehensive memory safety. We describe the rationale behind the design decisions and its ramifications on various dimensions, our experience with the various variants that we explored in this project, and the lessons learned in the process. We also describe and analyze the forthcoming Intel Memory Protection Extensions (MPX) that provides hardware acceleration for disjoint metadata and pointer checking in mainstream hardware, which is expected to be available later this year.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115870431","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}
引用次数: 69
The Silently Shifting Semicolon 无声移动分号
Pub Date : 2015-05-01 DOI: 10.4230/LIPIcs.SNAPL.2015.177
Daniel Marino, T. Millstein, M. Musuvathi, S. Narayanasamy, Abhayendra Singh
Memory consistency models for modern concurrent languages have largely been designed from a system-centric point of view that protects, at all costs, optimizations that were originally designed for sequential programs. The result is a situation that, when viewed from a programmer's standpoint, borders on absurd. We illustrate this unfortunate situation with a brief fable and then examine the opportunities to right our path.
现代并发语言的内存一致性模型在很大程度上是从以系统为中心的角度设计的,它不惜一切代价保护最初为顺序程序设计的优化。从程序员的角度来看,结果是一种近乎荒谬的情况。我们用一个简短的寓言来说明这种不幸的情况,然后研究纠正我们道路的机会。
{"title":"The Silently Shifting Semicolon","authors":"Daniel Marino, T. Millstein, M. Musuvathi, S. Narayanasamy, Abhayendra Singh","doi":"10.4230/LIPIcs.SNAPL.2015.177","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.177","url":null,"abstract":"Memory consistency models for modern concurrent languages have largely been designed from a system-centric point of view that protects, at all costs, optimizations that were originally designed for sequential programs. The result is a situation that, when viewed from a programmer's standpoint, borders on absurd. We illustrate this unfortunate situation with a brief fable and then examine the opportunities to right our path.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126410340","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
Tracking the Flow of Ideas through the Programming Languages Literature 通过编程语言文献跟踪思想的流动
Pub Date : 2015-05-01 DOI: 10.4230/LIPIcs.SNAPL.2015.140
M. Greenberg, Kathleen Fisher, David Walker
How have conferences like ICFP, OOPSLA, PLDI, and POPL evolved over the last 20 years? Did generalizing the Call for Papers for OOPSLA in 2007 or changing the name of the umbrella conference to SPLASH in 2010 have any effect on the kinds of papers published there? How do POPL and PLDI papers compare, topic-wise? Is there related work that I am missing? Have the ideas in O'Hearn's classic paper on separation logic shifted the kinds of papers that appear in POPL? Does a proposed program committee cover the range of submissions expected for the conference? If we had better tools for analyzing the programming language literature, we might be able to answer these questions and others like them in a data-driven way. In this paper, we explore how topic modeling, a branch of machine learning, might help the programming language community better understand our literature.
在过去的20年里,像ICFP、OOPSLA、PLDI和POPL这样的会议是如何发展的?在2007年将OOPSLA的论文征稿活动一般化,或者在2010年将这个伞型会议的名称改为SPLASH,对在那里发表的论文种类有什么影响吗?在主题方面,POPL和PLDI论文如何比较?我是否缺少相关的工作?O'Hearn关于分离逻辑的经典论文中的思想是否改变了POPL中出现的论文类型?提议的项目委员会是否涵盖了会议预期提交的所有内容?如果我们有更好的工具来分析编程语言文献,我们可能能够以数据驱动的方式回答这些问题和其他类似的问题。在本文中,我们探讨了主题建模(机器学习的一个分支)如何帮助编程语言社区更好地理解我们的文献。
{"title":"Tracking the Flow of Ideas through the Programming Languages Literature","authors":"M. Greenberg, Kathleen Fisher, David Walker","doi":"10.4230/LIPIcs.SNAPL.2015.140","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.140","url":null,"abstract":"How have conferences like ICFP, OOPSLA, PLDI, and POPL evolved over the last 20 years? Did generalizing the Call for Papers for OOPSLA in 2007 or changing the name of the umbrella conference to SPLASH in 2010 have any effect on the kinds of papers published there? How do POPL and PLDI papers compare, topic-wise? Is there related work that I am missing? Have the ideas in O'Hearn's classic paper on separation logic shifted the kinds of papers that appear in POPL? Does a proposed program committee cover the range of submissions expected for the conference? If we had better tools for analyzing the programming language literature, we might be able to answer these questions and others like them in a data-driven way. In this paper, we explore how topic modeling, a branch of machine learning, might help the programming language community better understand our literature.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133293407","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}
引用次数: 3
A Few Lessons from the Mezzo Project Mezzo项目的一些经验教训
Pub Date : 2015-05-01 DOI: 10.4230/LIPIcs.SNAPL.2015.221
F. Pottier, Jonathan Protzenko
With Mezzo, we set out to design a new, better programming language. In this modest document, we recount our adventure: what worked, and what did not; the decisions that appear in hindsight to have been good, and the design mistakes that cost us; the things that we are happy with in the end, and the frustrating aspects we wish we had handled better.
通过Mezzo,我们开始设计一种新的、更好的编程语言。在这份简短的文件中,我们讲述了我们的冒险经历:哪些成功了,哪些失败了;事后看来是好的决策,以及让我们付出代价的设计错误;我们最终感到高兴的事情,以及我们希望处理得更好的令人沮丧的方面。
{"title":"A Few Lessons from the Mezzo Project","authors":"F. Pottier, Jonathan Protzenko","doi":"10.4230/LIPIcs.SNAPL.2015.221","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.221","url":null,"abstract":"With Mezzo, we set out to design a new, better programming language. In this modest document, we recount our adventure: what worked, and what did not; the decisions that appear in hindsight to have been good, and the design mistakes that cost us; the things that we are happy with in the end, and the frustrating aspects we wish we had handled better.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122411844","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
Toward a Dependability Case Language and Workflow for a Radiation Therapy System 放射治疗系统案例语言与工作流程之探讨
Pub Date : 2015-04-28 DOI: 10.4230/LIPIcs.SNAPL.2015.103
Michael D. Ernst, D. Grossman, J. Jacky, Calvin Loncaric, Stuart Pernsteiner, Zachary Tatlock, E. Torlak, Xi Wang
We present a near-future research agenda for bringing a suite of modern programming-languages verification tools - specifically interactive theorem proving, solver-aided languages, and formally defined domain-specific languages - to the development of a specific safety-critical system, a radiotherapy medical device. We sketch how we believe recent programming-languages research advances can merge with existing best practices for safety-critical systems to increase system assurance and developer productivity. We motivate hypotheses central to our agenda: That we should start with a single specific system and that we need to integrate a variety of complementary verification and synthesis tools into system development.
我们提出了一个近期的研究议程,将一套现代编程语言验证工具-特别是交互式定理证明,求解器辅助语言和正式定义的领域特定语言-用于特定安全关键系统,放射治疗医疗设备的开发。我们概述了我们如何相信最近的编程语言研究进展可以与安全关键系统的现有最佳实践相结合,以提高系统保证和开发人员的生产力。我们激励我们议程的中心假设:我们应该从一个单一的特定系统开始,并且我们需要将各种互补的验证和综合工具集成到系统开发中。
{"title":"Toward a Dependability Case Language and Workflow for a Radiation Therapy System","authors":"Michael D. Ernst, D. Grossman, J. Jacky, Calvin Loncaric, Stuart Pernsteiner, Zachary Tatlock, E. Torlak, Xi Wang","doi":"10.4230/LIPIcs.SNAPL.2015.103","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.103","url":null,"abstract":"We present a near-future research agenda for bringing a suite of modern programming-languages verification tools - specifically interactive theorem proving, solver-aided languages, and formally defined domain-specific languages - to the development of a specific safety-critical system, a radiotherapy medical device. We sketch how we believe recent programming-languages research advances can merge with existing best practices for safety-critical systems to increase system assurance and developer productivity. We motivate hypotheses central to our agenda: That we should start with a single specific system and that we need to integrate a variety of complementary verification and synthesis tools into system development.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-04-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129609130","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
Hardware-Software Co-Design: Not Just a Cliché 硬件-软件协同设计:不只是一个陈词滥调
Pub Date : 2015-04-28 DOI: 10.4230/LIPIcs.SNAPL.2015.262
Adrian Sampson, James Bornholt, L. Ceze
The age of the air-tight hardware abstraction is over. As the computing ecosystem moves beyond the predictable yearly advances of Moore's Law, appeals to familiarity and backwards compatibility will become less convincing: fundamental shifts in abstraction and design will look more enticing. It is time to embrace hardware-software co-design in earnest, to cooperate between programming languages and architecture to upend legacy constraints on computing. We describe our work on approximate computing, a new avenue spanning the system stack from applications and languages to microarchitectures. We reflect on the challenges and successes of approximation research and, with these lessons in mind, distill opportunities for future hardware-software co-design efforts.
无懈可击的硬件抽象时代结束了。随着计算生态系统超越了可预测的摩尔定律的年度进步,对熟悉度和向后兼容性的呼吁将变得不那么令人信服:抽象和设计的根本转变将看起来更诱人。现在是时候认真地拥抱软硬件协同设计,在编程语言和体系结构之间进行合作,以颠覆对计算的遗留限制。我们描述了我们在近似计算方面的工作,这是一条跨越系统堆栈的新途径,从应用程序和语言到微架构。我们反思了近似研究的挑战和成功,并将这些经验教训牢记在心,为未来的硬件软件协同设计工作提供了机会。
{"title":"Hardware-Software Co-Design: Not Just a Cliché","authors":"Adrian Sampson, James Bornholt, L. Ceze","doi":"10.4230/LIPIcs.SNAPL.2015.262","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.262","url":null,"abstract":"The age of the air-tight hardware abstraction is over. As the computing ecosystem moves beyond the predictable yearly advances of Moore's Law, appeals to familiarity and backwards compatibility will become less convincing: fundamental shifts in abstraction and design will look more enticing. It is time to embrace hardware-software co-design in earnest, to cooperate between programming languages and architecture to upend legacy constraints on computing. We describe our work on approximate computing, a new avenue spanning the system stack from applications and languages to microarchitectures. We reflect on the challenges and successes of approximation research and, with these lessons in mind, distill opportunities for future hardware-software co-design efforts.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2015-04-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130654002","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}
引用次数: 19
Formal Verification vs. Quantum Uncertainty 形式验证与量子不确定性
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.12
Robert Rand, K. Hietala, M. Hicks
14 Programming a quantum computer is difficult and writing a program that will execute successfully 15 on quantum devices that exist today (or are likely to exist in the near future) is a daunting task. Not 16 only is quantum computing inherently uncertain, the quantum computers that we have introduce 17 a variety of novel errors that are difficult to predict or work around. Techniques from formal 18 verification will allow us to quantify and mitigate these errors if we can bridge the gap between 19 high level languages and machine specifications. In this paper, we review existing approaches to 20 quantum program verification and propose a new approach focused not only on long term quantum 21 programming, but on the quantum programs we can run today. 22 2012 ACM Subject Classification Software and its engineering → Formal software verification; 23 Hardware → Quantum error correction and fault tolerance 24
为量子计算机编程很困难,编写一个能在现有(或可能在不久的将来)量子设备上成功执行的程序是一项艰巨的任务。量子计算不仅具有固有的不确定性,我们所使用的量子计算机还引入了各种难以预测或解决的新错误。如果我们能够弥合高级语言和机器规范之间的差距,那么来自正式验证的技术将允许我们量化并减轻这些错误。在本文中,我们回顾了现有的量子程序验证方法,并提出了一种新的方法,不仅关注长期的量子编程,而且关注我们今天可以运行的量子程序。22 2012 ACM学科分类软件及其工程→正式软件验证;硬件→量子纠错和容错
{"title":"Formal Verification vs. Quantum Uncertainty","authors":"Robert Rand, K. Hietala, M. Hicks","doi":"10.4230/LIPIcs.SNAPL.2019.12","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.12","url":null,"abstract":"14 Programming a quantum computer is difficult and writing a program that will execute successfully 15 on quantum devices that exist today (or are likely to exist in the near future) is a daunting task. Not 16 only is quantum computing inherently uncertain, the quantum computers that we have introduce 17 a variety of novel errors that are difficult to predict or work around. Techniques from formal 18 verification will allow us to quantify and mitigate these errors if we can bridge the gap between 19 high level languages and machine specifications. In this paper, we review existing approaches to 20 quantum program verification and propose a new approach focused not only on long term quantum 21 programming, but on the quantum programs we can run today. 22 2012 ACM Subject Classification Software and its engineering → Formal software verification; 23 Hardware → Quantum error correction and fault tolerance 24","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":"114732525","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}
引用次数: 11
Domain-Specific Symbolic Compilation 特定于领域的符号编译
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.2
R. Bodík, Kartik Chandra, P. Phothilimthana, N. Yazdani
A symbolic compiler translates a program to symbolic constraints, automatically reducing model checking and synthesis to constraint solving. We show that new applications of constraint solving require domain-specific encodings that yield the required orders of magnitude improvements in solver efficiency. Unfortunately, these encodings cannot be obtained with today's symbolic compilation. We introduce symbolic languages that encapsulate domain-specific encodings under abstractions that behave as their non-symbolic counterparts: client code using the abstractions can be tested and debugged on concrete inputs. When client code is symbolically compiled, the resulting constraints use domain-specific encodings. We demonstrate the idea on the first fully symbolic checker of type systems; a program partitioner; and a parallelizer of tree computations. In each of these case studies, symbolic languages improved on classical symbolic compilers by orders of magnitude.
符号编译器将程序转换为符号约束,自动将模型检查和综合简化为约束求解。我们表明约束求解的新应用需要特定于领域的编码,从而在求解器效率方面产生所需的数量级改进。不幸的是,这些编码不能通过今天的符号编译获得。我们引入符号语言,将特定于领域的编码封装在抽象下,这些抽象的行为就像它们的非符号对应:使用抽象的客户端代码可以在具体输入上进行测试和调试。当以符号方式编译客户端代码时,生成的约束使用特定于域的编码。我们在类型系统的第一个完全符号检查器上演示了这个思想;程序分区器;并行化的树计算。在这些案例研究中,符号语言在经典符号编译器的基础上进行了数量级的改进。
{"title":"Domain-Specific Symbolic Compilation","authors":"R. Bodík, Kartik Chandra, P. Phothilimthana, N. Yazdani","doi":"10.4230/LIPIcs.SNAPL.2017.2","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.2","url":null,"abstract":"A symbolic compiler translates a program to symbolic constraints, automatically reducing model checking and synthesis to constraint solving. We show that new applications of constraint solving require domain-specific encodings that yield the required orders of magnitude improvements in solver efficiency. Unfortunately, these encodings cannot be obtained with today's symbolic compilation. \u0000 \u0000We introduce symbolic languages that encapsulate domain-specific encodings under abstractions that behave as their non-symbolic counterparts: client code using the abstractions can be tested and debugged on concrete inputs. When client code is symbolically compiled, the resulting constraints use domain-specific encodings. \u0000 \u0000We demonstrate the idea on the first fully symbolic checker of type systems; a program partitioner; and a parallelizer of tree computations. In each of these case studies, symbolic languages improved on classical symbolic compilers by orders of magnitude.","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":"126180701","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
期刊
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