Pattern-based compilation of asynchronous consumption
    1.
    发明授权
    Pattern-based compilation of asynchronous consumption 有权
    基于模式的异步消耗编译

    公开(公告)号:US08918767B2

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

    申请号:US13162288

    申请日:2011-06-16

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/456

    摘要: The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results. Accordingly, the plurality of statements can use these members to await execution of the asynchronous operation.

    摘要翻译: 本发明扩展到用于转换源代码以等待执行异步操作的方法,系统和计算机程序产品。 本发明的实施例简化了异步方法的编写和使用,通过生成使用明确定义的等待对象等待完成异步操作的语句。 例如,计算机系统可以将请求等待完成异步操作的语句转换为使用对应于异步操作的可等待对象的成员的预定义模式的多个语句。 该模式可以包括被配置为返回异步操作的完成状态的一个或多个成员,被配置成在异步操作完成时在恢复点恢复异步方法的执行的一个或多个成员以及被配置为检索完成的一个或多个成员 结果。 因此,多个语句可以使用这些成员来等待异步操作的执行。

    PATTERN-BASED COMPILATION OF ASYNCHRONOUS CONSUMPTION
    2.
    发明申请
    PATTERN-BASED COMPILATION OF ASYNCHRONOUS CONSUMPTION 有权
    基于模式的异步消费的编译

    公开(公告)号:US20120324431A1

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

    申请号:US13162288

    申请日:2011-06-16

    IPC分类号: G06F9/45

    CPC分类号: G06F8/456

    摘要: The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results. Accordingly, the plurality of statements can use these members to await execution of the asynchronous operation.

    摘要翻译: 本发明扩展到用于转换源代码以等待执行异步操作的方法,系统和计算机程序产品。 本发明的实施例简化了异步方法的编写和使用,通过生成使用明确定义的等待对象等待完成异步操作的语句。 例如,计算机系统可以将请求等待完成异步操作的语句转换为使用对应于异步操作的可等待对象的成员的预定义模式的多个语句。 该模式可以包括被配置为返回异步操作的完成状态的一个或多个成员,被配置成在异步操作完成时在恢复点恢复异步方法的执行的一个或多个成员以及被配置为检索完成的一个或多个成员 结果。 因此,多个语句可以使用这些成员来等待异步操作的执行。

    USING COMPILER-GENERATED TASKS TO REPRESENT PROGRAMMING ELEMENTS
    3.
    发明申请
    USING COMPILER-GENERATED TASKS TO REPRESENT PROGRAMMING ELEMENTS 有权
    使用编译器生成的任务来表示编程元素

    公开(公告)号:US20120324457A1

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

    申请号:US13162328

    申请日:2011-06-16

    IPC分类号: G06F9/46

    CPC分类号: G06F8/45

    摘要: The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.

    摘要翻译: 本发明扩展到用于用编译器生成的任务表示各种编程元素的方法,系统和计算机程序产品。 本发明的实施例能够通过对单个和可组合任务对象的句柄来访问方法的未来状态。 例如,重写异步方法以生成并返回对构建器对象的实例的句柄,该对象表示异步方法的一个或多个未来状态。 关于异步方法的操作的信息然后通过句柄传递。 因此,异步方法的状态在完成之前和之后是可跟踪的。

    Using compiler-generated tasks to represent programming elements
    4.
    发明授权
    Using compiler-generated tasks to represent programming elements 有权
    使用编译器生成的任务来表示编程元素

    公开(公告)号:US08572585B2

    公开(公告)日:2013-10-29

    申请号:US13162328

    申请日:2011-06-16

    IPC分类号: G06F9/45

    CPC分类号: G06F8/45

    摘要: The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.

    摘要翻译: 本发明扩展到用于用编译器生成的任务表示各种编程元素的方法,系统和计算机程序产品。 本发明的实施例能够通过对单个和可组合任务对象的句柄来访问方法的未来状态。 例如,重写异步方法以生成并返回对构建器对象的实例的句柄,该对象表示异步方法的一个或多个未来状态。 关于异步方法的操作的信息然后通过句柄传递。 因此,异步方法的状态在完成之前和之后是可追踪的。

    DYNAMIC BINDING DIRECTED BY STATIC TYPES
    6.
    发明申请
    DYNAMIC BINDING DIRECTED BY STATIC TYPES 有权
    动态绑定的动态绑定

    公开(公告)号:US20100299660A1

    公开(公告)日:2010-11-25

    申请号:US12469696

    申请日:2009-05-21

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/54 G06F9/44521

    摘要: A static type, called “dynamic”, is introduced into a statically bound programming language. An expression or subexpression that is defined as a static type called “dynamic” in the source code of a program written in the statically bound programming language, is bound based on its runtime type instead of on its compile time type. Binding can be performed based on a mixture of compile time and runtime types that are based on the specification of types of expressions in source code. This type of binding is called hybrid binding. Operations are bound using the runtime type of constituent expressions (i.e., the runtime type of a receiver, an argument, or an operand) typed as dynamic and the compile time type of static constituents. If any constituent expression of an operation is dynamic, binding occurs at runtime instead of at compile time.

    摘要翻译: 称为“动态”的静态类型被引入到静态编程语言中。 在静态编程语言编写的程序的源代码中被定义为静态类型的动态表达式或子表达式是基于其运行时类型而不是编译时类型而绑定的。 可以基于基于源代码中表达式的类型的编译时间和运行时类型的混合来执行绑定。 这种类型的绑定称为混合绑定。 使用类型为动态的组合表达式(即,接收器的运行时类型,参数或操作数)的运行时类型以及静态组件的编译时间类型来绑定操作。 如果操作的任何组成表达式是动态的,则绑定在运行时而不是在编译时发生。

    A GENERIC INTERFACE FOR DEEP EMBEDDING OF EXPRESSION TREES IN PROGRAMMING LANGUAGES
    9.
    发明申请
    A GENERIC INTERFACE FOR DEEP EMBEDDING OF EXPRESSION TREES IN PROGRAMMING LANGUAGES 有权
    编程语言深度嵌入表达式的一般界面

    公开(公告)号:US20070271233A1

    公开(公告)日:2007-11-22

    申请号:US11464874

    申请日:2006-08-16

    IPC分类号: G06F17/30

    CPC分类号: G06F17/3041 G06F8/41

    摘要: The claimed subject matter provides a system and/or a method that facilitates querying data utilizing an explicit representation of an embedded language. An IEnumberable component can receive a data operation that can be employed on a collection of data utilizing at least one of an IEnumerable interface and an IEnumerable interface. A mirror component can provide a generic interface to query the collection of data by representing the collection of data as an expression tree utilizing at least one function that mirrors the at least one IEnumerable interface and the IEnumerable interface.

    摘要翻译: 所要求保护的主题提供了利用嵌入式语言的显式表示来促进查询数据的系统和/或方法。 IEnumberable组件可以使用IEnumerable接口和IEnumerable 接口中的至少一个来接收可用于数据集合的数据操作。 镜像组件可以提供通用接口来通过使用至少一个映射至少一个IEnumerable接口和IEnumerable接口的功能来表示数据的集合来查询数据的集合。