首页 > 最新文献

ACM Sigplan Notices最新文献

英文 中文
A domain-specific language for exploratory data visualization 用于探索性数据可视化的特定领域语言
Q1 Computer Science Pub Date : 2018-11-05 DOI: 10.1145/3393934.3278138
SmeltzerKarl, ErwigMartin
With an ever-growing amount of collected data, the importance of visualization as an analysis component is growing in concert. The creation of good visualizations often doesn't happen in one step b...
随着收集的数据数量的不断增加,可视化作为分析组件的重要性也在不断增加。良好可视化的创建通常不是一步到位的。。。
{"title":"A domain-specific language for exploratory data visualization","authors":"SmeltzerKarl, ErwigMartin","doi":"10.1145/3393934.3278138","DOIUrl":"https://doi.org/10.1145/3393934.3278138","url":null,"abstract":"With an ever-growing amount of collected data, the importance of visualization as an analysis component is growing in concert. The creation of good visualizations often doesn't happen in one step b...","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":" ","pages":""},"PeriodicalIF":0.0,"publicationDate":"2018-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3393934.3278138","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"46435245","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
Query-based object-oriented programming: a declarative web of objects 基于查询的面向对象编程:一个声明性的对象网络
Q1 Computer Science Pub Date : 2018-10-24 DOI: 10.1145/3393673.3276949
SeginerYoav, VosseTheo, HarariGil, KolodnyUri
We present a declarative, object-oriented language in which queries play a central role. Queries are used not only to access data, but also to refer to the application’s object members and as a mea...
我们提出了一种声明性的、面向对象的语言,其中查询起着中心作用。查询不仅用于访问数据,而且还用于引用应用程序的对象成员,并作为…
{"title":"Query-based object-oriented programming: a declarative web of objects","authors":"SeginerYoav, VosseTheo, HarariGil, KolodnyUri","doi":"10.1145/3393673.3276949","DOIUrl":"https://doi.org/10.1145/3393673.3276949","url":null,"abstract":"We present a declarative, object-oriented language in which queries play a central role. Queries are used not only to access data, but also to refer to the application’s object members and as a mea...","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":" ","pages":""},"PeriodicalIF":0.0,"publicationDate":"2018-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3393673.3276949","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"42530777","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
AutoBench: comparing the time performance of Haskell programs AutoBench:比较Haskell程序的时间性能
Q1 Computer Science Pub Date : 2018-09-17 DOI: 10.1145/3299711.3242749
A. T. HandleyMartin, HuttonGraham
Two fundamental goals in programming are correctness (producing the right results) and efficiency (using as few resources as possible). Property-based testing tools such as QuickCheck provide a lig...
编程的两个基本目标是正确性(产生正确的结果)和效率(使用尽可能少的资源)。基于属性的测试工具,如QuickCheck,提供了一个轻量级的。。。
{"title":"AutoBench: comparing the time performance of Haskell programs","authors":"A. T. HandleyMartin, HuttonGraham","doi":"10.1145/3299711.3242749","DOIUrl":"https://doi.org/10.1145/3299711.3242749","url":null,"abstract":"Two fundamental goals in programming are correctness (producing the right results) and efficiency (using as few resources as possible). Property-based testing tools such as QuickCheck provide a lig...","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":" ","pages":""},"PeriodicalIF":0.0,"publicationDate":"2018-09-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3299711.3242749","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"43471894","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
Deriving via: or, how to turn hand-written instances into an anti-pattern 派生通过:或者,如何将手写实例转化为反模式
Q1 Computer Science Pub Date : 2018-09-17 DOI: 10.1145/3299711.3242746
BlöndalBaldur, LöhAndres, ScottRyan
Haskell's deriving construct is a cheap and cheerful way to quickly generate instances of type classes that follow common patterns. But at present, there is only a subset of such type class pattern...
Haskell的派生构造是一种廉价而愉快的方法,可以快速生成遵循常见模式的类型类实例。但目前,这种类型的类模式只有一个子集。。。
{"title":"Deriving via: or, how to turn hand-written instances into an anti-pattern","authors":"BlöndalBaldur, LöhAndres, ScottRyan","doi":"10.1145/3299711.3242746","DOIUrl":"https://doi.org/10.1145/3299711.3242746","url":null,"abstract":"Haskell's deriving construct is a cheap and cheerful way to quickly generate instances of type classes that follow common patterns. But at present, there is only a subset of such type class pattern...","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":" ","pages":""},"PeriodicalIF":0.0,"publicationDate":"2018-09-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3299711.3242746","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49607131","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
Compositionality in scenario-aware dataflow: a rendezvous perspective 场景感知数据流中的组合性:一个集合视角
Q1 Computer Science Pub Date : 2018-06-19 DOI: 10.1145/3299710.3211339
SkelinMladen, GeilenMarc
Finite-state machine-based scenario-aware dataflow (FSM-SADF) is a dynamic dataflow model of computation that combines streaming data and finite-state control. For the most part, it preserves the d...
基于有限状态机的场景感知数据流(FSM-SADF)是一种结合了流数据和有限状态控制的动态计算数据流模型。在很大程度上,它保留了…
{"title":"Compositionality in scenario-aware dataflow: a rendezvous perspective","authors":"SkelinMladen, GeilenMarc","doi":"10.1145/3299710.3211339","DOIUrl":"https://doi.org/10.1145/3299710.3211339","url":null,"abstract":"Finite-state machine-based scenario-aware dataflow (FSM-SADF) is a dynamic dataflow model of computation that combines streaming data and finite-state control. For the most part, it preserves the d...","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":" ","pages":""},"PeriodicalIF":0.0,"publicationDate":"2018-06-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3299710.3211339","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"45561857","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
Calling-to-reference context translation via constraint-guided CFL-reachability 通过约束引导的cfl可达性实现调用到引用上下文的转换
Q1 Computer Science Pub Date : 2018-06-11 DOI: 10.1145/3296979.3192378
Cheng Cai, Qirun Zhang, Zhiqiang Zuo, Khanh Nguyen, G. Xu, Z. Su
A calling context is an important piece of information used widely to help developers understand program executions (e.g., for debugging). While calling contexts offer useful control information, information regarding data involved in a bug (e.g., what data structure holds a leaking object), in many cases, can bring developers closer to the bug's root cause. Such data information, often exhibited as heap reference paths, has already been needed by many tools. The only way for a dynamic analysis to record complete reference paths is to perform heap dumping, which incurs huge runtime overhead and renders the analysis impractical. This paper presents a novel static analysis that can precisely infer, from a calling context of a method that contains a use (e.g., read or write) of an object, the heap reference paths leading to the object at the time the use occurs. Since calling context recording is much less expensive, our technique provides benefits for all dynamic techniques that need heap information, significantly reducing their overhead.
调用上下文是一个重要的信息,广泛用于帮助开发人员理解程序执行(例如,用于调试)。虽然调用上下文提供了有用的控制信息,但在许多情况下,有关bug中涉及的数据的信息(例如,什么数据结构包含泄漏对象)可以使开发人员更接近bug的根本原因。这些数据信息通常显示为堆引用路径,许多工具已经需要这些信息。动态分析记录完整引用路径的唯一方法是执行堆转储,这会导致巨大的运行时开销,并使分析变得不切实际。本文提出了一种新颖的静态分析,它可以从包含对对象的使用(例如,读或写)的方法的调用上下文精确地推断出在使用发生时指向该对象的堆引用路径。由于调用上下文记录的成本要低得多,因此我们的技术为所有需要堆信息的动态技术提供了好处,显著降低了它们的开销。
{"title":"Calling-to-reference context translation via constraint-guided CFL-reachability","authors":"Cheng Cai, Qirun Zhang, Zhiqiang Zuo, Khanh Nguyen, G. Xu, Z. Su","doi":"10.1145/3296979.3192378","DOIUrl":"https://doi.org/10.1145/3296979.3192378","url":null,"abstract":"A calling context is an important piece of information used widely to help developers understand program executions (e.g., for debugging). While calling contexts offer useful control information, information regarding data involved in a bug (e.g., what data structure holds a leaking object), in many cases, can bring developers closer to the bug's root cause. Such data information, often exhibited as heap reference paths, has already been needed by many tools. The only way for a dynamic analysis to record complete reference paths is to perform heap dumping, which incurs huge runtime overhead and renders the analysis impractical. This paper presents a novel static analysis that can precisely infer, from a calling context of a method that contains a use (e.g., read or write) of an object, the heap reference paths leading to the object at the time the use occurs. Since calling context recording is much less expensive, our technique provides benefits for all dynamic techniques that need heap information, significantly reducing their overhead.","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":"74 1","pages":"196 - 210"},"PeriodicalIF":0.0,"publicationDate":"2018-06-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90177295","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
SWOOP: software-hardware co-design for non-speculative, execute-ahead, in-order cores SWOOP:用于非推测性、提前执行、顺序核的软硬件协同设计
Q1 Computer Science Pub Date : 2018-06-11 DOI: 10.1145/3296979.3192393
Kim-Anh Tran, A. Jimborean, Trevor E. Carlson, K. Koukos, Magnus Själander, S. Kaxiras
Increasing demands for energy efficiency constrain emerging hardware. These new hardware trends challenge the established assumptions in code generation and force us to rethink existing software optimization techniques. We propose a cross-layer redesign of the way compilers and the underlying microarchitecture are built and interact, to achieve both performance and high energy efficiency. In this paper, we address one of the main performance bottlenecks — last-level cache misses — through a software-hardware co-design. Our approach is able to hide memory latency and attain increased memory and instruction level parallelism by orchestrating a non-speculative, execute-ahead paradigm in software (SWOOP). While out-of-order (OoO) architectures attempt to hide memory latency by dynamically reordering instructions, they do so through expensive, power-hungry, speculative mechanisms.We aim to shift this complexity into software, and we build upon compilation techniques inherited from VLIW, software pipelining, modulo scheduling, decoupled access-execution, and software prefetching. In contrast to previous approaches we do not rely on either software or hardware speculation that can be detrimental to efficiency. Our SWOOP compiler is enhanced with lightweight architectural support, thus being able to transform applications that include highly complex control-flow and indirect memory accesses.
对能源效率日益增长的需求限制了新兴硬件。这些新的硬件趋势挑战了代码生成的既定假设,并迫使我们重新思考现有的软件优化技术。我们建议对编译器和底层微架构的构建和交互方式进行跨层重新设计,以实现性能和高能效。在本文中,我们通过软硬件协同设计解决了一个主要的性能瓶颈——最后一级缓存丢失。我们的方法能够隐藏内存延迟,并通过在软件中编排一个非推测性的、提前执行的范式(SWOOP)来获得增加的内存和指令级并行性。乱序(OoO)架构试图通过动态重新排序指令来隐藏内存延迟,但它们是通过昂贵、耗电、推测性的机制来实现的。我们的目标是将这种复杂性转移到软件中,并在继承自VLIW的编译技术、软件流水线、模调度、解耦访问执行和软件预取的基础上进行构建。与以前的方法相比,我们不依赖于可能对效率有害的软件或硬件猜测。我们的SWOOP编译器通过轻量级的体系结构支持得到增强,因此能够转换包含高度复杂的控制流和间接内存访问的应用程序。
{"title":"SWOOP: software-hardware co-design for non-speculative, execute-ahead, in-order cores","authors":"Kim-Anh Tran, A. Jimborean, Trevor E. Carlson, K. Koukos, Magnus Själander, S. Kaxiras","doi":"10.1145/3296979.3192393","DOIUrl":"https://doi.org/10.1145/3296979.3192393","url":null,"abstract":"Increasing demands for energy efficiency constrain emerging hardware. These new hardware trends challenge the established assumptions in code generation and force us to rethink existing software optimization techniques. We propose a cross-layer redesign of the way compilers and the underlying microarchitecture are built and interact, to achieve both performance and high energy efficiency. In this paper, we address one of the main performance bottlenecks — last-level cache misses — through a software-hardware co-design. Our approach is able to hide memory latency and attain increased memory and instruction level parallelism by orchestrating a non-speculative, execute-ahead paradigm in software (SWOOP). While out-of-order (OoO) architectures attempt to hide memory latency by dynamically reordering instructions, they do so through expensive, power-hungry, speculative mechanisms.We aim to shift this complexity into software, and we build upon compilation techniques inherited from VLIW, software pipelining, modulo scheduling, decoupled access-execution, and software prefetching. In contrast to previous approaches we do not rely on either software or hardware speculation that can be detrimental to efficiency. Our SWOOP compiler is enhanced with lightweight architectural support, thus being able to transform applications that include highly complex control-flow and indirect memory accesses.","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":"49 1","pages":"328 - 343"},"PeriodicalIF":0.0,"publicationDate":"2018-06-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84324483","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
Verifying that web pages have accessible layout 验证网页是否具有可访问的布局
Q1 Computer Science Pub Date : 2018-06-11 DOI: 10.1145/3296979.3192407
P. Panchekha, Adam T. Geller, Michael D. Ernst, Zachary Tatlock, S. Kamil
Usability and accessibility guidelines aim to make graphical user interfaces accessible to all users, by, say, requiring that text is sufficiently large, interactive controls are visible, and heading size corresponds to importance. These guidelines must hold on the infinitely many possible renderings of a web page generated by differing screen sizes, fonts, and other user preferences. Today, these guidelines are tested by manual inspection of a few renderings, because 1) the guidelines are not expressed in a formal language, 2) the semantics of browser rendering are not well understood, and 3) no tools exist to check all possible renderings of a web page. VizAssert solves these problems. First, it introduces visual logic to precisely specify accessibility properties. Second, it formalizes a large fragment of the browser rendering algorithm using novel finitization reductions. Third, it provides a sound, automated tool for verifying assertions in visual logic. We encoded 14 assertions drawn from best-practice accessibility and mobile-usability guidelines in visual logic. VizAssert checked them on on 62 professionally designed web pages. It found 64 distinct errors in the web pages, while reporting only 13 false positive warnings.
可用性和可访问性指导方针旨在使图形用户界面对所有用户都可访问,例如,要求文本足够大,交互式控件可见,标题大小与重要性相对应。这些指导方针必须适用于由不同屏幕尺寸、字体和其他用户偏好生成的无限多可能的网页渲染。今天,这些指导方针是通过手工检查一些渲染图来测试的,因为1)指导方针没有用正式的语言表达,2)浏览器渲染的语义没有很好地理解,3)没有工具来检查网页的所有可能的渲染。VizAssert解决了这些问题。首先,它引入了可视化逻辑来精确地指定可访问性属性。其次,它使用新颖的最终化缩减来形式化浏览器呈现算法的很大一部分。第三,它提供了一个可靠的、自动化的工具,用于在可视化逻辑中验证断言。我们在视觉逻辑中编码了来自最佳实践可访问性和移动可用性指南的14个断言。VizAssert在62个专业设计的网页上检查了它们。它在网页上发现了64个明显的错误,而只报告了13个误报。
{"title":"Verifying that web pages have accessible layout","authors":"P. Panchekha, Adam T. Geller, Michael D. Ernst, Zachary Tatlock, S. Kamil","doi":"10.1145/3296979.3192407","DOIUrl":"https://doi.org/10.1145/3296979.3192407","url":null,"abstract":"Usability and accessibility guidelines aim to make graphical user interfaces accessible to all users, by, say, requiring that text is sufficiently large, interactive controls are visible, and heading size corresponds to importance. These guidelines must hold on the infinitely many possible renderings of a web page generated by differing screen sizes, fonts, and other user preferences. Today, these guidelines are tested by manual inspection of a few renderings, because 1) the guidelines are not expressed in a formal language, 2) the semantics of browser rendering are not well understood, and 3) no tools exist to check all possible renderings of a web page. VizAssert solves these problems. First, it introduces visual logic to precisely specify accessibility properties. Second, it formalizes a large fragment of the browser rendering algorithm using novel finitization reductions. Third, it provides a sound, automated tool for verifying assertions in visual logic. We encoded 14 assertions drawn from best-practice accessibility and mobile-usability guidelines in visual logic. VizAssert checked them on on 62 professionally designed web pages. It found 64 distinct errors in the web pages, while reporting only 13 false positive warnings.","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":"80 1","pages":"1 - 14"},"PeriodicalIF":0.0,"publicationDate":"2018-06-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80406784","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}
引用次数: 31
On-stack replacement, distilled 栈内替换,蒸馏
Q1 Computer Science Pub Date : 2018-06-11 DOI: 10.1145/3296979.3192396
Daniele Cono D'Elia, C. Demetrescu
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to code actively executing in a managed runtime. The engineering aspects of OSR are well-known among VM architects, with several implementations available to date. However, OSR is yet to be explored as a general means to transfer execution between related program versions, which can pave the road to unprecedented applications that stretch beyond VMs. We aim at filling this gap with a constructive and provably correct OSR framework, allowing a class of general-purpose transformation functions to yield a special-purpose replacement. We describe and evaluate an implementation of our technique in LLVM. As a novel application of OSR, we present a feasibility study on debugging of optimized code, showing how our techniques can be used to fix variables holding incorrect values at breakpoints due to optimizations.
栈上替换(OSR)是自适应优化的关键技术,它允许在托管运行时中主动执行代码更改。OSR的工程方面在VM架构师中是众所周知的,迄今为止有几个可用的实现。然而,OSR作为一种在相关程序版本之间传输执行的通用手段尚未被探索,这可以为超越vm的前所未有的应用程序铺平道路。我们的目标是用一个建设性的、可证明正确的OSR框架来填补这一空白,允许一类通用的转换函数产生一个特殊用途的替代品。我们描述并评估了我们的技术在LLVM中的实现。作为OSR的一个新应用,我们提出了对优化代码调试的可行性研究,展示了如何使用我们的技术来修复由于优化而在断点处持有不正确值的变量。
{"title":"On-stack replacement, distilled","authors":"Daniele Cono D'Elia, C. Demetrescu","doi":"10.1145/3296979.3192396","DOIUrl":"https://doi.org/10.1145/3296979.3192396","url":null,"abstract":"On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to code actively executing in a managed runtime. The engineering aspects of OSR are well-known among VM architects, with several implementations available to date. However, OSR is yet to be explored as a general means to transfer execution between related program versions, which can pave the road to unprecedented applications that stretch beyond VMs. We aim at filling this gap with a constructive and provably correct OSR framework, allowing a class of general-purpose transformation functions to yield a special-purpose replacement. We describe and evaluate an implementation of our technique in LLVM. As a novel application of OSR, we present a feasibility study on debugging of optimized code, showing how our techniques can be used to fix variables holding incorrect values at breakpoints due to optimizations.","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":"15 1","pages":"166 - 180"},"PeriodicalIF":0.0,"publicationDate":"2018-06-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87128103","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}
引用次数: 13
User-guided program reasoning using Bayesian inference 使用贝叶斯推理的用户引导程序推理
Q1 Computer Science Pub Date : 2018-06-11 DOI: 10.1145/3296979.3192417
Mukund Raghothaman, S. Kulkarni, K. Heo, M. Naik
Program analyses necessarily make approximations that often lead them to report true alarms interspersed with many false alarms. We propose a new approach to leverage user feedback to guide program analyses towards true alarms and away from false alarms. Our approach associates each alarm with a confidence value by performing Bayesian inference on a probabilistic model derived from the analysis rules. In each iteration, the user inspects the alarm with the highest confidence and labels its ground truth, and the approach recomputes the confidences of the remaining alarms given this feedback. It thereby maximizes the return on the effort by the user in inspecting each alarm. We have implemented our approach in a tool named Bingo for program analyses expressed in Datalog. Experiments with real users and two sophisticated analyses---a static datarace analysis for Java programs and a static taint analysis for Android apps---show significant improvements on a range of metrics, including false alarm rates and number of bugs found.
程序分析必须作出近似,这常常导致它们报告夹杂着许多假警报的真警报。我们提出了一种新的方法来利用用户反馈来指导程序分析向真警报和远离假警报。我们的方法通过对从分析规则导出的概率模型执行贝叶斯推理,将每个警报与置信度值关联起来。在每次迭代中,用户以最高置信度检查警报并标记其基本真实值,该方法根据该反馈重新计算剩余警报的置信度。因此,它最大限度地提高了用户检查每个报警的努力回报。我们已经在一个名为Bingo的工具中实现了我们的方法,用于用Datalog表示的程序分析。对真实用户的实验和两种复杂的分析(针对Java程序的静态数据分析和针对Android应用的静态污染分析)表明,在一系列指标(包括假警报率和发现的bug数量)上有了显著改善。
{"title":"User-guided program reasoning using Bayesian inference","authors":"Mukund Raghothaman, S. Kulkarni, K. Heo, M. Naik","doi":"10.1145/3296979.3192417","DOIUrl":"https://doi.org/10.1145/3296979.3192417","url":null,"abstract":"Program analyses necessarily make approximations that often lead them to report true alarms interspersed with many false alarms. We propose a new approach to leverage user feedback to guide program analyses towards true alarms and away from false alarms. Our approach associates each alarm with a confidence value by performing Bayesian inference on a probabilistic model derived from the analysis rules. In each iteration, the user inspects the alarm with the highest confidence and labels its ground truth, and the approach recomputes the confidences of the remaining alarms given this feedback. It thereby maximizes the return on the effort by the user in inspecting each alarm. We have implemented our approach in a tool named Bingo for program analyses expressed in Datalog. Experiments with real users and two sophisticated analyses---a static datarace analysis for Java programs and a static taint analysis for Android apps---show significant improvements on a range of metrics, including false alarm rates and number of bugs found.","PeriodicalId":50923,"journal":{"name":"ACM Sigplan Notices","volume":"29 8","pages":"722 - 735"},"PeriodicalIF":0.0,"publicationDate":"2018-06-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3296979.3192417","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72475546","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}
引用次数: 42
期刊
ACM Sigplan Notices
全部 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