Analysis of Interactions of C and C++ Strings
    6.
    发明申请
    Analysis of Interactions of C and C++ Strings 审中-公开
    C和C ++字符串的相互作用分析

    公开(公告)号:US20120233584A1

    公开(公告)日:2012-09-13

    申请号:US13416358

    申请日:2012-03-09

    IPC分类号: G06F9/44

    CPC分类号: G06F8/51 G06F8/443

    摘要: A computer implemented method for analyzing a computer software program comprising both C++ and C string components, wherein the method includes building a memory model abstraction of any memory used by the program strings. Various memory models are presented that find invalid memory accesses in terms of validity of memory regions and buffer overflows. The model supports analyzing the interaction of C and C++ components—in particular, it focuses on the interaction of C and C++ strings. The conversion of C++ strings to C strings is accomplished through a non-transferable ownership attribute that is to be respected by the C strings. The models can then be analyzed using static analysis techniques such as abstract interpretation and model checking, or through dynamic analysis. In so doing we allow discovery of potential memory safety violations in programs involving conversions between C and C++ strings.

    摘要翻译: 一种用于分析包括C ++和C字符串组件的计算机软件程序的计算机实现的方法,其中所述方法包括构建由程序串使用的任何存储器的存储器模型抽象。 提出了各种存储器模型,它们根据存储器区域和缓冲区溢出的有效性找到无效的存储器访问。 该模型支持分析C和C ++组件的交互,特别是C和C ++字符串的交互。 将C ++字符串转换为C字符串是通过C字符串要遵守的不可转移的所有权属性来实现的。 然后可以使用静态分析技术(如抽象解释和模型检查)或通过动态分析来分析模型。 在这样做的时候,我们允许在涉及C和C ++字符串之间的转换的程序中发现潜在的内存安全违规。

    Embedding class hierarchy into object models for multiple class inheritance
    8.
    发明授权
    Embedding class hierarchy into object models for multiple class inheritance 有权
    将类层次结构嵌入到多类继承的对象模型中

    公开(公告)号:US08707278B2

    公开(公告)日:2014-04-22

    申请号:US13251463

    申请日:2011-10-03

    IPC分类号: G06F9/45

    摘要: A model is provided for transforming a program with a priori given class hierarchy that is induced by inheritance. An inheritance remover is configured to remove inheritance from a given program to produce an analysis-friendly program which does not include virtual-function pointer tables and runtime libraries associated with inheritance-related operations. The analysis-friendly program preserves the semantics of the given program with respect to a given class hierarchy. A clarifier is configured to identify implicit expressions and function calls and transform the given program into at least one intermediate program having explicit expressions and function calls.

    摘要翻译: 提供了一个模型,用于使用由继承引发的先验给定的类层次结构来转换程序。 继承去除器配置为从给定的程序中删除继承,以生成一个不包含与继承相关的操作相关联的虚拟函数指针表和运行时库的分析友好的程序。 分析友好的程序保留给定程序相对于给定类层次结构的语义。 澄清器被配置为识别隐式表达式和函数调用,并将给定程序转换成具有显式表达式和函数调用的至少一个中间程序。

    EMBEDDING CLASS HIERARCHY INTO OBJECT MODELS FOR MULTIPLE CLASS INHERITANCE
    9.
    发明申请
    EMBEDDING CLASS HIERARCHY INTO OBJECT MODELS FOR MULTIPLE CLASS INHERITANCE 有权
    嵌入层次分类到多个类别的对象模型中

    公开(公告)号:US20120117547A1

    公开(公告)日:2012-05-10

    申请号:US13251463

    申请日:2011-10-03

    IPC分类号: G06F9/45

    摘要: A model is provided for transforming a program with a priori given class hierarchy that is induced by inheritance. An inheritance remover is configured to remove inheritance from a given program to produce an analysis-friendly program which does not include virtual-function pointer tables and runtime libraries associated with inheritance-related operations. The analysis-friendly program preserves the semantics of the given program with respect to a given class hierarchy. A clarifier is configured to identify implicit expressions and function calls and transform the given program into at least one intermediate program having explicit expressions and function calls.

    摘要翻译: 提供了一个模型,用于使用由继承引发的先验给定的类层次结构来转换程序。 继承去除器配置为从给定的程序中删除继承,以生成一个不包含与继承相关的操作相关联的虚拟函数指针表和运行时库的分析友好的程序。 分析友好的程序保留给定程序相对于给定类层次结构的语义。 澄清器被配置为识别隐式表达式和函数调用,并将给定程序转换成具有显式表达式和函数调用的至少一个中间程序。

    Mining library specifications using inductive learning
    10.
    发明授权
    Mining library specifications using inductive learning 有权
    采矿库规范采用归纳学习

    公开(公告)号:US08191045B2

    公开(公告)日:2012-05-29

    申请号:US12050624

    申请日:2008-03-18

    IPC分类号: G06F9/44 G06F9/445

    CPC分类号: G06F8/74 G06F8/36 G06F11/3672

    摘要: A system and method for mining program specifications includes generating unit tests to exercise functions of a library through an application program interface (API), based upon an (API) signature. A response to the unit tests is determined to generate a transaction in accordance with a target behavior. The transaction is converted into a relational form, and specifications of the library are learned using an inductive logic programming tool from the relational form of the transaction.

    摘要翻译: 一种用于挖掘程序规范的系统和方法包括:基于(API)签名,通过应用程序接口(API)生成单元测试来执行库的功能。 确定对单元测试的响应以根据目标行为生成交易。 该事务被转换为关系形式,并且使用来自事务的关系形式的归纳逻辑编程工具来学习库的规范。