A GENERIC INTERFACE FOR DEEP EMBEDDING OF EXPRESSION TREES IN PROGRAMMING LANGUAGES
    31.
    发明申请
    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接口的功能来表示数据的集合来查询数据的集合。

    Partial methods
    32.
    发明授权
    Partial methods 有权
    部分方法

    公开(公告)号:US07890939B2

    公开(公告)日:2011-02-15

    申请号:US11674333

    申请日:2007-02-13

    IPC分类号: G06F9/45

    CPC分类号: G06F8/00

    摘要: Partial methods enable separation of method declaration and/or calls from method implementation. A partial method specifies a signature of a join or hook point in a class. Calls to a partial method specify a join or hook point in code that can optionally be linked with an actual method implementation of the same signature. Separate method implementations or other code related to a partial method are injected into a single program prior to execution. Unimplemented partial methods are treated as no operation instructions or otherwise ignored.

    摘要翻译: 部分方法使得方法实现能够分离方法声明和/或调用。 部分方法指定类中的连接或钩点的签名。 调用部分方法指定可以可选地与相同签名的实际方法实现链接的代码中的连接或挂接点。 在执行之前,将单独的方法实现或与部分方法相关的其他代码注入到单个程序中。 未实现的部分方法被视为无操作指令或以其他方式忽略。

    Pattern-based compilation of asynchronous consumption
    37.
    发明授权
    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.

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

    USING COMPILER-GENERATED TASKS TO REPRESENT PROGRAMMING ELEMENTS
    38.
    发明申请
    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.

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

    Generic interface for deep embedding of expression trees in programming languages
    39.
    发明授权
    Generic interface for deep embedding of expression trees in programming languages 有权
    用于在编程语言中深入嵌入表达式树的通用接口

    公开(公告)号:US07860823B2

    公开(公告)日:2010-12-28

    申请号:US11464874

    申请日:2006-08-16

    IPC分类号: G06F7/00

    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接口的功能来表示数据的集合来查询数据的集合。

    DYNAMIC BINDING DIRECTED BY STATIC TYPES
    40.
    发明申请
    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.

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