首页> 外文会议>ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering >Resolving and applying constraint queries on context-sensitive analyses
【24h】

Resolving and applying constraint queries on context-sensitive analyses

机译:解决和应用关于上下文敏感分析的约束查询

获取原文

摘要

A context-sensitive analysis is an analysis in which program elements are assigned sets of properties that depend upon the context in which they occur. For analyses on imperative languages, this often refers to considering the behavior of statements in a called procedure with respect to the call-stack that generated the procedure invocation. Algorithms for performing or approximating these types of analyses make up the core of interprocedural program analysis and are pervasive; having applications in program comprehension, optimization, and verification. However, for many of these applications what is of interest is the solution to the dual problem: given a vertex and a desirable set of properties, what is the set of potential stack-contexts leading to that vertex that results in the desirable property set? Many techniques, such as procedure cloning, have been developed to approximately partition the set of stack-contexts leading to a vertex according to such a condition. This paper introduces a broad generalization of this problem referred to as a constraint query on the analysis. This generalization allows sophisticated constraints to be placed on both the desirable property set as well as the set of interesting stack-contexts. From these constraints, a novel technique based on manipulating regular languages is introduced that efficiently produces a concise representation of the exact set of stack-contexts solving this dual problem subject to the constraints. This technique is applied to a pair of emerging software engineering challenges - resolving program comprehension queries over aggregate collections of properties and statically modifying code to enforce a safety policy decidable by the analysis. Practical examples of both applications are presented along with empirical results.
机译:上下文敏感性分析是分析,其中程序元素被分配了依赖于它们发生的上下文的属性集。为了对必要语言进行分析,这通常是指在所谓的过程中,考虑了所谓的过程中生成过程调用的呼叫堆栈中的语句的行为。用于执行或近似这些类型分析的算法构成了移植程序分析的核心并普遍存在;在程序理解,优化和验证中具有应用。但是,对于许多这些应用程序是什么感兴趣的是对双重问题的解决方案:给定顶点和一个理想的属性集,其中一组潜在的堆栈上下文导致该顶点导致所需的属性集合的内容?已经开发了许多技术,例如过程克隆,以便根据这种情况近似分区导致顶点的一组堆叠上下文。本文介绍了在分析上称为约束查询的这个问题的广泛概括。该泛化允许将复杂的约束放置在期望的属性集上以及有趣的堆栈上下文的集合上。根据这些约束,引入了一种基于操纵常规语言的新技术,其有效地产生了解决该双重问题的确切堆栈上下文的简洁表示,该双重问题受到约束。该技术应用于一对新兴软件工程挑战 - 解决程序理解查询的聚合收集属性和静态修改代码以强制执行分析解码的安全策略。两种应用的实际例子以及经验结果呈现。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号