Deep cloning of objects using binary format

    公开(公告)号:US09817857B2

    公开(公告)日:2017-11-14

    申请号:US14603569

    申请日:2015-01-23

    IPC分类号: G06F17/30 G06F9/44

    摘要: Techniques are described herein that are capable of deep cloning (a.k.a. deep copying) objects using a binary format. A deep clone of a designated object includes references to other objects (and potentially copies of the other objects) included in the designated object. A binary representation of each object in an object graph is generated to provide a binary clone of the object graph. Objects created by a dynamic language engine are called dynamic language objects. Objects created by a host (e.g., that hosts the dynamic language engine) are called host objects. Each host object is associated with an intermediate representation thereof via a property bag that describes properties of that host object. Each intermediate representation is understandable by the dynamic language engine. A binary representation of each dynamic language object and each host object may be generated in accordance with the binary format to provide the binary clone.

    Thread-agile execution of dynamic programming language programs

    公开(公告)号:US10417011B2

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

    申请号:US15383961

    申请日:2016-12-19

    IPC分类号: G06F9/445 G06F9/48 G06F9/448

    摘要: Methods, systems, and products are provided for thread-agile dynamic programming language (‘DPL’) program execution. Thread-agile DPL program execution may be carried out by receiving, in a message queue, a message for an instance of a DPL program and determining whether the host application has a stored state object for the instance of the DPL program identified by the message. If the host application has a stored state object for the DPL program, thread-agile DPL program execution may also carried out by retrieving the state object; preparing a thread available from a thread pool for execution of the instance of the DPL program in dependence upon the state object and an execution context for the instance of the DPL program; providing, to an execution engine for executing the DPL program, the state object and the prepared thread; and passing the message to the execution engine.

    Language-based model for asynchronous operations

    公开(公告)号:US09690604B2

    公开(公告)日:2017-06-27

    申请号:US15408011

    申请日:2017-01-17

    IPC分类号: G06F9/44 G06F9/45 G06F9/455

    摘要: A language-based model to support asynchronous operations set forth in a synchronous syntax is provided. The asynchronous operations are transformed in a compiler into an asynchronous pattern, such as an APM-based pattern (or asynchronous programming model based pattern). The ability to compose asynchronous operations comes from the ability to efficiently call asynchronous methods from other asynchronous methods, pause them and later resume them, and effectively implementing a single-linked stack. One example includes support for ordered and unordered compositions of asynchronous operations. In an ordered composition, each asynchronous operation is started and finished before another operation in the composition is started. In an unordered composition, each asynchronous operation is started and completed independently of the operations in the unordered composition.

    DEEP CLONING OF OBJECTS USING BINARY FORMAT
    5.
    发明申请
    DEEP CLONING OF OBJECTS USING BINARY FORMAT 有权
    使用二进制格式对目标进行深度克隆

    公开(公告)号:US20150142854A1

    公开(公告)日:2015-05-21

    申请号:US14603569

    申请日:2015-01-23

    IPC分类号: G06F17/30

    摘要: Techniques are described herein that are capable of deep cloning (a.k.a. deep copying) objects using a binary format. A deep clone of a designated object includes references to other objects (and potentially copies of the other objects) included in the designated object. A binary representation of each object in an object graph is generated to provide a binary clone of the object graph. Objects created by a dynamic language engine are called dynamic language objects. Objects created by a host (e.g., that hosts the dynamic language engine) are called host objects. Each host object is associated with an intermediate representation thereof via a property bag that describes properties of that host object. Each intermediate representation is understandable by the dynamic language engine. A binary representation of each dynamic language object and each host object may be generated in accordance with the binary format to provide the binary clone.

    摘要翻译: 本文描述了能够使用二进制格式深入克隆(例如深度复制)对象的技术。 指定对象的深层克隆包括对包含在指定对象中的其他对象(以及其他对象的潜在副本)的引用。 生成对象图中每个对象的二进制表示,以提供对象图的二进制克隆。 由动态语言引擎创建的对象称为动态语言对象。 由主机(例如,承载动态语言引擎)创建的对象称为主机对象。 通过描述该主机对象的属性的属性包,每个主机对象与其中间表示相关联。 动态语言引擎可以理解每个中间表示。 可以根据二进制格式生成每个动态语言对象和每个主机对象的二进制表示,以提供二进制克隆。

    LANGUAGE-BASED MODEL FOR ASYNCHRONOUS OPERATIONS

    公开(公告)号:US20170123776A1

    公开(公告)日:2017-05-04

    申请号:US15408011

    申请日:2017-01-17

    IPC分类号: G06F9/45 G06F9/455

    摘要: A language-based model to support asynchronous operations set forth in a synchronous syntax is provided. The asynchronous operations are transformed in a compiler into an asynchronous pattern, such as an APM-based pattern (or asynchronous programming model based pattern). The ability to compose asynchronous operations comes from the ability to efficiently call asynchronous methods from other asynchronous methods, pause them and later resume them, and effectively implementing a single-linked stack. One example includes support for ordered and unordered compositions of asynchronous operations. In an ordered composition, each asynchronous operation is started and finished before another operation in the composition is started. In an unordered composition, each asynchronous operation is started and completed independently of the operations in the unordered composition.

    THREAD-AGILE EXECUTION OF DYNAMIC PROGRAMMING LANGUAGE PROGRAMS

    公开(公告)号:US20170168843A1

    公开(公告)日:2017-06-15

    申请号:US15383961

    申请日:2016-12-19

    IPC分类号: G06F9/445 G06F9/48 G06F9/44

    摘要: Methods, systems, and products are provided for thread-agile dynamic programming language (‘DPL’) program execution. Thread-agile DPL program execution may be carried out by receiving, in a message queue, a message for an instance of a DPL program and determining whether the host application has a stored state object for the instance of the DPL program identified by the message. If the host application has a stored state object for the DPL program, thread-agile DPL program execution may also carried out by retrieving the state object; preparing a thread available from a thread pool for execution of the instance of the DPL program in dependence upon the state object and an execution context for the instance of the DPL program; providing, to an execution engine for executing the DPL program, the state object and the prepared thread; and passing the message to the execution engine.