Reducing false alarms for static analysis of concurrent programs
    1.
    发明授权
    Reducing false alarms for static analysis of concurrent programs 有权
    减少并发程序的静态分析的虚假警报

    公开(公告)号:US08793664B2

    公开(公告)日:2014-07-29

    申请号:US13316563

    申请日:2011-12-12

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3604

    摘要: The claimed subject matter provides a method for performing a static analysis of concurrent programs. The method includes determining that a static analysis of the first concurrent program generates a warning for an input. The method also includes determining whether a static analysis of the second concurrent program generates the warning for the input. The method further includes removing the warning if the static analysis of the second concurrent program generates the warning.

    摘要翻译: 所要求保护的主题提供了一种用于执行并发程序的静态分析的方法。 该方法包括确定第一并发程序的静态分析生成用于输入的警告。 该方法还包括确定第二并发程序的静态分析是否为输入生成警告。 该方法还包括如果第二并发程序的静态分析产生警告,则移除警告。

    Predicate abstraction via symbolic decision procedures
    2.
    发明授权
    Predicate abstraction via symbolic decision procedures 有权
    通过符号决策程序进行谓词抽象

    公开(公告)号:US07587707B2

    公开(公告)日:2009-09-08

    申请号:US11172760

    申请日:2005-07-01

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3608 G06F11/3692

    摘要: Predicate abstraction techniques and tools. Using symbolic decision procedures, predicate abstractions for computer programs are generated based on a set of predicates representing observations of expected behavior of the program. The set of predicates may be generated by an automatic program analysis tool or may be provided a user based on the user's observations. The predicate abstraction process may employ binary decision diagrams. Two or more symbolic decision procedures (e.g., for different kinds of program logic) can be combined to form a combined symbolic decision procedure to be used for predicate abstraction. A data structure can be used to track derived predicates during predicate abstraction.

    摘要翻译: 谓词抽象技术和工具。 使用符号决策程序,计算机程序的谓词抽象是基于代表对程序预期行为的观察的一组谓词生成的。 该组谓词可以由自动程序分析工具生成,或者可以基于用户的观察向用户提供。 谓词抽象过程可以采用二进制决策图。 可以组合两个或多个符号判定过程(例如,针对不同类型的程序逻辑)以形成用于谓词抽象的组合符号判定过程。 数据结构可用于在谓词抽象过程中跟踪派生谓词。

    Computer method for solving sparse linear constraints
    3.
    发明申请
    Computer method for solving sparse linear constraints 有权
    用于求解稀疏线性约束的计算机方法

    公开(公告)号:US20070294196A1

    公开(公告)日:2007-12-20

    申请号:US11455308

    申请日:2006-06-15

    IPC分类号: G06F15/18

    CPC分类号: G06F11/3608

    摘要: A computer implemented method for solving linear arithmetic constraints that combines a solver for difference constraints with a general linear arithmetic constraint solver. When used to solve sparse linear arithmetic constraints, the time and space complexity of the process is determined by the difference constraint component.

    摘要翻译: 一种用于求解线性算术约束的计算机实现方法,其将差分约束的求解器与一般的线性算术约束求解器相结合。 当用于解决稀疏线性算术约束时,过程的时间和空间复杂性由差异约束分量决定。

    Unifying Type Checking and Property Checking for Low Level Programs
    4.
    发明申请
    Unifying Type Checking and Property Checking for Low Level Programs 有权
    统一类型检查和低级程序的属性检查

    公开(公告)号:US20100169868A1

    公开(公告)日:2010-07-01

    申请号:US12347398

    申请日:2008-12-31

    IPC分类号: G06F9/45 G06F9/44

    摘要: This document describes a unified type checker and property checker for a low level program's heap and its types. The type checker can use the full power of the property checker to express and verify subtle, program specific type and memory safety invariants well beyond what the native low level program system can check. Meanwhile, the property checker can rely on the type checker to provide structure and disambiguation for the program's heap, enabling more concise and more powerful type-based specifications. This approach makes use of a fully automated Satisfiability Modulo Theories (SMT) solver and a decision procedure for checking type safety, which means that the programmer's only duty is to provide high-level type and property annotations as part of the original program's source.

    摘要翻译: 本文档描述了低级程序堆及其类型的统一类型检查器和属性检查器。 类型检查器可以使用属性检查器的全部功能来表达和验证微妙的程序特定类型和内存安全不变量,远远超出了本机低级程序系统可以检查的内容。 同时,属性检查器可以依靠类型检查器为程序的堆提供结构和消歧,从而实现更简洁和更强大的基于类型的规范。 这种方法利用完全自动化的满意度模数理论(SMT)求解器和检查类型安全性的决策程序,这意味着程序员唯一的职责是提供高级类型和属性注释作为原始程序源的一部分。

    Computer implemented methods for solving difference and non-difference linear constraints
    5.
    发明授权
    Computer implemented methods for solving difference and non-difference linear constraints 有权
    用于求解差分和非差分线性约束的计算机实现方法

    公开(公告)号:US07596534B2

    公开(公告)日:2009-09-29

    申请号:US11455308

    申请日:2006-06-15

    IPC分类号: G06N5/00

    CPC分类号: G06F11/3608

    摘要: A computer implemented method for solving linear arithmetic constraints that combines a solver for difference constraints with a general linear arithmetic constraint solver. When used to solve sparse linear arithmetic constraints, the time and space complexity of the process is determined by the difference constraint component.

    摘要翻译: 一种用于求解线性算术约束的计算机实现方法,其将差分约束的求解器与一般的线性算术约束求解器相结合。 当用于解决稀疏线性算术约束时,过程的时间和空间复杂性由差异约束分量决定。

    REDUCING FALSE ALARMS FOR STATIC ANALYSIS OF CONCURRENT PROGRAMS
    6.
    发明申请
    REDUCING FALSE ALARMS FOR STATIC ANALYSIS OF CONCURRENT PROGRAMS 有权
    减少对相关程序的静态分析的错误报告

    公开(公告)号:US20130152055A1

    公开(公告)日:2013-06-13

    申请号:US13316563

    申请日:2011-12-12

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3604

    摘要: The claimed subject matter provides a method for performing a static analysis of concurrent programs. The method includes determining that a static analysis of the first concurrent program generates a warning for an input. The method also includes determining whether a static analysis of the second concurrent program generates the warning for the input. The method further includes removing the warning if the static analysis of the second concurrent program generates the warning.

    摘要翻译: 所要求保护的主题提供了一种用于执行并发程序的静态分析的方法。 该方法包括确定第一并发程序的静态分析生成用于输入的警告。 该方法还包括确定第二并发程序的静态分析是否为输入生成警告。 该方法还包括如果第二并发程序的静态分析产生警告,则移除警告。

    COMPILER VALIDATION VIA PROGRAM VERIFICATION
    7.
    发明申请
    COMPILER VALIDATION VIA PROGRAM VERIFICATION 有权
    通过程序验证的编译器验证

    公开(公告)号:US20120167066A1

    公开(公告)日:2012-06-28

    申请号:US12977669

    申请日:2010-12-23

    IPC分类号: G06F9/45

    CPC分类号: G06F11/3624 G06F11/3604

    摘要: To overcome the difficulties inherent in traditional compiler validating methods, a new technique is herein provided for validating compiler output via program verification. In one embodiment, this technique is implemented as an automated tool that merges both a source program and the compiler-generated target program into a single (intermediate) program. An automated program verifier is then applied to the merged program. Subsequently, the program verifier compares the source and target programs and determines if the programs are semantically equivalent.

    摘要翻译: 为了克服传统编译器验证方法中固有的困难,本文提供了一种通过程序验证验证编译器输出的新技术。 在一个实施例中,该技术被实现为将源程序和编译器生成的目标程序两者并入单个(中间)程序中的自动化工具。 然后,将自动程序验证器应用于合并的程序。 随后,程序验证者比较源程序和目标程序,并确定程序是否在语义上相当。

    AUTOMATIC AND SYSTEMATIC DETECTION OF RACE CONDITIONS AND ATOMICITY VIOLATIONS
    8.
    发明申请
    AUTOMATIC AND SYSTEMATIC DETECTION OF RACE CONDITIONS AND ATOMICITY VIOLATIONS 有权
    自动和系统的检测条件和原子侵害

    公开(公告)号:US20080109641A1

    公开(公告)日:2008-05-08

    申请号:US11557252

    申请日:2006-11-07

    IPC分类号: G06F9/30

    CPC分类号: G06F11/3684 G06F9/524

    摘要: A library or application is selected comprising one or more functions or methods. An interesting subset of the functions or methods is created. A plurality of multi-threaded test cases are generated from the subset of interesting functions or methods, with each test case comprising a unique pair or triple of functions or methods from the subset. The resulting set of test cases may then be filtered of thread safe test cases using static analysis techniques. The filtered set of test cases is then used as an input to a specialized application that executes each of the multi-threaded test cases to detect atomicity violations and race conditions. The results of the execution of each of the test cases by the specialized application are then aggregated and presented to a user or administrator in a report, for example.

    摘要翻译: 选择包括一个或多个功能或方法的库或应用程序。 创建函数或方法的一个有趣的子集。 从感兴趣的功能或方法的子集生成多个多线程测试用例,每个测试用例包括来自该子集的唯一对或三个函数或方法。 然后可以使用静态分析技术对结果集的测试用例进行线程安全测试用例的过滤。 然后将经过滤波的测试用例集合用作执行每个多线程测试用例以检测原子性违规和竞态条件的专用应用程序的输入。 例如,通过专门应用程序执行每个测试用例的结果然后被聚合并呈现给报告中的用户或管理员。

    Compiler validation via program verification
    9.
    发明授权
    Compiler validation via program verification 有权
    通过程序验证编译器验证

    公开(公告)号:US08843908B2

    公开(公告)日:2014-09-23

    申请号:US12977669

    申请日:2010-12-23

    IPC分类号: G06F9/45 G06F11/36

    CPC分类号: G06F11/3624 G06F11/3604

    摘要: To overcome the difficulties inherent in traditional compiler validating methods, a new technique is herein provided for validating compiler output via program verification. In one embodiment, this technique is implemented as an automated tool that merges both a source program and the compiler-generated target program into a single (intermediate) program. An automated program verifier is then applied to the merged program. Subsequently, the program verifier compares the source and target programs and determines if the programs are semantically equivalent.

    摘要翻译: 为了克服传统编译器验证方法中固有的困难,本文提供了一种通过程序验证验证编译器输出的新技术。 在一个实施例中,该技术被实现为将源程序和编译器生成的目标程序两者并入单个(中间)程序中的自动化工具。 然后,将自动程序验证器应用于合并的程序。 随后,程序验证者比较源程序和目标程序,并确定程序是否在语义上相当。

    Unifying type checking and property checking for low level programs
    10.
    发明授权
    Unifying type checking and property checking for low level programs 有权
    对低级程序进行统一的类型检查和属性检查

    公开(公告)号:US08813043B2

    公开(公告)日:2014-08-19

    申请号:US12347398

    申请日:2008-12-31

    IPC分类号: G06F9/44 G06F9/45 G06F11/36

    摘要: This document describes a unified type checker and property checker for a low level program's heap and its types. The type checker can use the full power of the property checker to express and verify subtle, program specific type and memory safety invariants well beyond what the native low level program system can check. Meanwhile, the property checker can rely on the type checker to provide structure and disambiguation for the program's heap, enabling more concise and more powerful type-based specifications. This approach makes use of a fully automated Satisfiability Modulo Theories (SMT) solver and a decision procedure for checking type safety, which means that the programmer's only duty is to provide high-level type and property annotations as part of the original program's source.

    摘要翻译: 本文档描述了低级程序堆及其类型的统一类型检查器和属性检查器。 类型检查器可以使用属性检查器的全部功能来表达和验证微妙的程序特定类型和内存安全不变量,远远超出了本机低级程序系统可以检查的内容。 同时,属性检查器可以依靠类型检查器为程序的堆提供结构和消歧,从而实现更简洁和更强大的基于类型的规范。 这种方法利用完全自动化的满意度模数理论(SMT)求解器和检查类型安全性的决策程序,这意味着程序员唯一的职责是提供高级类型和属性注释作为原始程序源的一部分。