Dynamic taint tracking in abstract syntax tree interpreters

    公开(公告)号:US11947677B2

    公开(公告)日:2024-04-02

    申请号:US17011637

    申请日:2020-09-03

    CPC classification number: G06F21/577 G06F8/427

    Abstract: A method may include determining that a non-constant value of a variable corresponding to a variable node of the abstract syntax tree flows into an operator node in the abstract syntax tree. The method may further include adding, to the abstract syntax tree, a check taint node including functionality to: make a taint status determination that the non-constant value is tainted, and return the non-constant value to the operator node. The operator node generates a result value by executing an operator using the non-constant value. The method may further include adding, to the abstract syntax tree, a set taint node that stores, based on the taint status determination, the result value in a second tainted object, and performing, using the abstract syntax tree, a taint analysis of the source code to identify a vulnerability in the source code.

    DYNAMIC TAINT TRACKING IN ABSTRACT SYNTAX TREE INTERPRETERS

    公开(公告)号:US20220067172A1

    公开(公告)日:2022-03-03

    申请号:US17011637

    申请日:2020-09-03

    Abstract: A method may include determining that a non-constant value of a variable corresponding to a variable node of the abstract syntax tree flows into an operator node in the abstract syntax tree. The method may further include adding, to the abstract syntax tree, a check taint node including functionality to: make a taint status determination that the non-constant value is tainted, and return the non-constant value to the operator node. The operator node generates a result value by executing an operator using the non-constant value. The method may further include adding, to the abstract syntax tree, a set taint node that stores, based on the taint status determination, the result value in a second tainted object, and performing, using the abstract syntax tree, a taint analysis of the source code to identify a vulnerability in the source code.

    EVALUATION TECHNIQUES FOR FAST ACCESS TO STRUCTURED, SEMI-STRUCTURED AND UNSTRUCTURED DATA USING A VIRTUAL MACHINE THAT PROVIDES SUPPORT FOR DYNAMIC CODE GENERATION

    公开(公告)号:US20180246752A1

    公开(公告)日:2018-08-30

    申请号:US15864863

    申请日:2018-01-08

    Abstract: Computer-implemented techniques described herein provide fast access to structured, semi-structured, and unstructured data using a virtual machine that provides support for dynamic code generation. In an embodiment, a virtual machine allows for the efficient encoding of data objects into hierarchically marked up data. A virtual machine is configured to dynamically create attributes of objects referenced by a body of code and hidden classes used to store attributes of objects referenced by the body of code. The virtual machine will determine whether a hidden class of an object satisfies one or more encoding criteria for encoding instances of objects with the hidden class. Encoding machine code is generated and executed to encode instances of objects with the hidden class. In another embodiment, direct structure decoding enables the generation of efficient machine code that is specialized for accessing only a subset of the input data that is used by an application. A parse operation is received to parse a hierarchical data object and a proxy object is created in a runtime memory space that references the hierarchical data object. It is then determined that the hierarchical data object is syntactically valid, and in response to receiving a request to read a property of the hierarchical data object, a subset of hierarchical data from the hierarchical data object is parsed to materialize a value of the property in the proxy object.

    DOMAIN SPECIFIC INLINING FOR INTERPRETERS
    4.
    发明公开

    公开(公告)号:US20230376290A1

    公开(公告)日:2023-11-23

    申请号:US18319339

    申请日:2023-05-17

    CPC classification number: G06F8/44

    Abstract: Domain specific inlining for interpreters includes obtaining an interpreter source code including compiler directives. A host compilation is performed on the interpreter source code to obtain a compiled interpreter. Performing host compilation includes inlining code blocks based on the plurality of compiler directives. The compiled interpreter is outputted.

    Efficient and thread-safe objects for dynamically-typed languages

    公开(公告)号:US10248349B2

    公开(公告)日:2019-04-02

    申请号:US15279564

    申请日:2016-09-29

    Abstract: A method may include creating objects by executing a program in a first thread. Creating the objects may include allocating, for each object, storage based on a shape assigned to the object. The storage may include separate, non-reusable storage locations. Each storage location may correspond to a field of the object. The shape may include a sharing status and a mapping of each field of the object to a storage location. The method may further include detecting that the program is initiating a second concurrent thread of execution, and designating a subset of objects as shared objects. Designating the subset of objects as shared objects may include setting the sharing status of the shape assigned to each shared object to indicate that the object is shared. The method may further include initiating tracking of shared objects and implementing a write barrier when writing to shared objects.

    Method and system for optimizing parallel program execution based on speculation that an object written to is not shared

    公开(公告)号:US09766926B2

    公开(公告)日:2017-09-19

    申请号:US14170506

    申请日:2014-01-31

    CPC classification number: G06F9/467 G06F9/38

    Abstract: A method for executing a program in parallel includes creating a program replica, which includes a write operation on and an identifier of an object and is a copy of the program, for a thread. The identifier specifies whether the object is thread-local. The method includes modifying the write operation based on a speculation that the write operation uses only thread-local objects. The write operation executes in a transaction of the thread. The method includes determining, while executing the program replica and using the identifier, that the object used by the write operation is not thread-local, de-optimizing the write operation by adding instrumentation to implement a software transactional memory (STM) system for the write operation to obtain a de-optimized write operation, and performing the de-optimized write operation on the object to obtain a result and store the result in a redo log.

    Evaluation techniques for fast access to structured, semi-structured and unstructured data using a virtual machine that provides support for dynamic code generation

    公开(公告)号:US10417036B2

    公开(公告)日:2019-09-17

    申请号:US15864863

    申请日:2018-01-08

    Abstract: Computer-implemented techniques described herein provide fast access to structured, semi-structured, and unstructured data using a virtual machine that provides support for dynamic code generation. In an embodiment, a virtual machine allows for the efficient encoding of data objects into hierarchically marked up data. A virtual machine is configured to dynamically create attributes of objects referenced by a body of code and hidden classes used to store attributes of objects referenced by the body of code. The virtual machine will determine whether a hidden class of an object satisfies one or more encoding criteria for encoding instances of objects with the hidden class. Encoding machine code is generated and executed to encode instances of objects with the hidden class. In another embodiment, direct structure decoding enables the generation of efficient machine code that is specialized for accessing only a subset of the input data that is used by an application. A parse operation is received to parse a hierarchical data object and a proxy object is created in a runtime memory space that references the hierarchical data object. It is then determined that the hierarchical data object is syntactically valid, and in response to receiving a request to read a property of the hierarchical data object, a subset of hierarchical data from the hierarchical data object is parsed to materialize a value of the property in the proxy object.

    EFFICIENT AND THREAD-SAFE OBJECTS FOR DYNAMICALLY-TYPED LANGUAGES

    公开(公告)号:US20170277467A1

    公开(公告)日:2017-09-28

    申请号:US15279564

    申请日:2016-09-29

    Abstract: A method may include creating objects by executing a program in a first thread. Creating the objects may include allocating, for each object, storage based on a shape assigned to the object. The storage may include separate, non-reusable storage locations. Each storage location may correspond to a field of the object. The shape may include a sharing status and a mapping of each field of the object to a storage location. The method may further include detecting that the program is initiating a second concurrent thread of execution, and designating a subset of objects as shared objects. Designating the subset of objects as shared objects may include setting the sharing status of the shape assigned to each shared object to indicate that the object is shared. The method may further include initiating tracking of shared objects and implementing a write barrier when writing to shared objects.

    METHOD AND SYSTEM FOR PARALLEL PROGRAM EXECUTION
    9.
    发明申请
    METHOD AND SYSTEM FOR PARALLEL PROGRAM EXECUTION 有权
    并行程序执行方法与系统

    公开(公告)号:US20150081988A1

    公开(公告)日:2015-03-19

    申请号:US14170506

    申请日:2014-01-31

    CPC classification number: G06F9/467 G06F9/38

    Abstract: A method for executing a program in parallel includes creating a program replica, which includes a write operation on and an identifier of an object and is a copy of the program, for a thread. The identifier specifies whether the object is thread-local. The method includes modifying the write operation based on a speculation that the write operation uses only thread-local objects. The write operation executes in a transaction of the thread. The method includes determining, while executing the program replica and using the identifier, that the object used by the write operation is not thread-local, de-optimizing the write operation by adding instrumentation to implement a software transactional memory (STM) system for the write operation to obtain a de-optimized write operation, and performing the de-optimized write operation on the object to obtain a result and store the result in a redo log.

    Abstract translation: 一种用于并行执行程序的方法包括:创建一个程序副本,该程序副本包括对一个对象的写操作和一个对象的标识符,并且是该程序的副本。 该标识符指定对象是线程本地的。 该方法包括基于写入操作仅使用线程本地对象的推测来修改写入操作。 写操作在线程的事务中执行。 该方法包括在执行程序副本并使用标识符时,确定由写入操作使用的对象不是线程本地的,通过添加仪器来对写入操作进行优化以实现软件事务存储器(STM)系统 写入操作以获得去优化的写入操作,并且对对象执行去优化的写入操作以获得结果并将结果存储在重做日志中。

Patent Agency Ranking