-
公开(公告)号:US09075667B2
公开(公告)日:2015-07-07
申请号:US12469696
申请日:2009-05-21
申请人: Mads Torgersen , Anders Hejlsberg , James J. Hugunin , Matthew J. Warren , Neal Gafter , Lucian Jules Wischik , Robert Eric Lippert , Samuel Y. Ng , Christopher Joseph Burrows , Alex C. Turner
发明人: Mads Torgersen , Anders Hejlsberg , James J. Hugunin , Matthew J. Warren , Neal Gafter , Lucian Jules Wischik , Robert Eric Lippert , Samuel Y. Ng , Christopher Joseph Burrows , Alex C. Turner
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.
摘要翻译: 称为“动态”的静态类型被引入到静态编程语言中。 在静态编程语言编写的程序的源代码中被定义为静态类型的动态表达式或子表达式是基于其运行时类型而不是编译时类型而绑定的。 可以基于基于源代码中表达式的类型的编译时间和运行时类型的混合来执行绑定。 这种类型的绑定称为混合绑定。 使用类型为动态的组合表达式(即,接收器的运行时类型,参数或操作数)的运行时类型和静态组件的编译时间类型来绑定操作。 如果操作的任何组成表达式是动态的,则绑定在运行时而不是在编译时发生。
-
公开(公告)号:US20100299660A1
公开(公告)日:2010-11-25
申请号:US12469696
申请日:2009-05-21
申请人: Mads Torgersen , Anders Hejlsberg , James J. Hugunin , Matthew J. Warren , Neal Gafter , Lucian Jules Wischik , Robert Eric Lippert , Samuel Y. Ng , Christopher Joseph Burrows , Alex C. Turner
发明人: Mads Torgersen , Anders Hejlsberg , James J. Hugunin , Matthew J. Warren , Neal Gafter , Lucian Jules Wischik , Robert Eric Lippert , Samuel Y. Ng , Christopher Joseph Burrows , Alex C. Turner
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.
摘要翻译: 称为“动态”的静态类型被引入到静态编程语言中。 在静态编程语言编写的程序的源代码中被定义为静态类型的动态表达式或子表达式是基于其运行时类型而不是编译时类型而绑定的。 可以基于基于源代码中表达式的类型的编译时间和运行时类型的混合来执行绑定。 这种类型的绑定称为混合绑定。 使用类型为动态的组合表达式(即,接收器的运行时类型,参数或操作数)的运行时类型以及静态组件的编译时间类型来绑定操作。 如果操作的任何组成表达式是动态的,则绑定在运行时而不是在编译时发生。
-
公开(公告)号:US20120324457A1
公开(公告)日:2012-12-20
申请号:US13162328
申请日:2011-06-16
申请人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wischik , Anders Hejlsberg , Dmitry Lomov , Matthew J. Warren , Robert Eric Lippert
发明人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wischik , Anders Hejlsberg , Dmitry Lomov , Matthew J. Warren , Robert Eric Lippert
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.
摘要翻译: 本发明扩展到用于用编译器生成的任务表示各种编程元素的方法,系统和计算机程序产品。 本发明的实施例能够通过对单个和可组合任务对象的句柄来访问方法的未来状态。 例如,重写异步方法以生成并返回对构建器对象的实例的句柄,该对象表示异步方法的一个或多个未来状态。 关于异步方法的操作的信息然后通过句柄传递。 因此,异步方法的状态在完成之前和之后是可跟踪的。
-
公开(公告)号:US08918767B2
公开(公告)日:2014-12-23
申请号:US13162288
申请日:2011-06-16
申请人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wischik , Anders Hejlsberg , Niklas Gustafsson , Dmitry Lomov , Matthew J. Warren
发明人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wischik , Anders Hejlsberg , Niklas Gustafsson , Dmitry Lomov , Matthew J. Warren
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.
摘要翻译: 本发明扩展到用于转换源代码以等待执行异步操作的方法,系统和计算机程序产品。 本发明的实施例简化了异步方法的编写和使用,通过生成使用明确定义的等待对象等待完成异步操作的语句。 例如,计算机系统可以将请求等待完成异步操作的语句转换为使用对应于异步操作的可等待对象的成员的预定义模式的多个语句。 该模式可以包括被配置为返回异步操作的完成状态的一个或多个成员,被配置成在异步操作完成时在恢复点恢复异步方法的执行的一个或多个成员以及被配置为检索完成的一个或多个成员 结果。 因此,多个语句可以使用这些成员来等待异步操作的执行。
-
公开(公告)号:US20120324431A1
公开(公告)日:2012-12-20
申请号:US13162288
申请日:2011-06-16
申请人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wischik , Anders Hejlsberg , Niklas Gustafsson , Dmitry Lomov , Matthew J. Warren
发明人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wischik , Anders Hejlsberg , Niklas Gustafsson , Dmitry Lomov , Matthew J. Warren
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.
摘要翻译: 本发明扩展到用于转换源代码以等待执行异步操作的方法,系统和计算机程序产品。 本发明的实施例简化了异步方法的编写和使用,通过生成使用明确定义的等待对象等待完成异步操作的语句。 例如,计算机系统可以将请求等待完成异步操作的语句转换为使用对应于异步操作的可等待对象的成员的预定义模式的多个语句。 该模式可以包括被配置为返回异步操作的完成状态的一个或多个成员,被配置成在异步操作完成时在恢复点恢复异步方法的执行的一个或多个成员以及被配置为检索完成的一个或多个成员 结果。 因此,多个语句可以使用这些成员来等待异步操作的执行。
-
公开(公告)号:US20090328016A1
公开(公告)日:2009-12-31
申请号:US12163775
申请日:2008-06-27
申请人: Timothy Yat Tim Ng , Robert Elliott Viehland , James Hugunin , Samuel Y. Ng , Matthew J. Warren , Anders Hejlsberg , Henricus Johannes Maria Meijer , John Wesley Dyer , Avner Y. Aharoni , John Benjamin Messerly , Martin Maly , William P. Chiles , Mads Torgersen
发明人: Timothy Yat Tim Ng , Robert Elliott Viehland , James Hugunin , Samuel Y. Ng , Matthew J. Warren , Anders Hejlsberg , Henricus Johannes Maria Meijer , John Wesley Dyer , Avner Y. Aharoni , John Benjamin Messerly , Martin Maly , William P. Chiles , Mads Torgersen
IPC分类号: G06F9/44
CPC分类号: G06F8/427
摘要: Expression tree versatility and applicability are enhanced to facilitate programming across various program languages and execution contexts. An expression tree can represent programmatic code as data in a representation common to multiple process mechanisms. As a result, entire programs or portions thereof can be captured and processed by a numerous common language components. Further, language specific concepts can be reduced to the common representation to enable language independent employment.
摘要翻译: 增强表达式树的多功能性和适用性,以便于跨各种程序语言和执行上下文进行编程。 表达式树可以将编程代码表示为多个进程机制中常见的表示形式的数据。 因此,可以通过许多公共语言组件捕获和处理整个程序或其一部分。 此外,语言特定的概念可以减少到共同的代表性,使语言无关的就业。
-
公开(公告)号:US08572585B2
公开(公告)日:2013-10-29
申请号:US13162328
申请日:2011-06-16
申请人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wishchik , Anders Hejlsberg , Dmitry Lomov , Matthew J. Warren , Robert Eric Lippert
发明人: Stephen Harris Toub , Mads Torgersen , Lucian Jules Wishchik , Anders Hejlsberg , Dmitry Lomov , Matthew J. Warren , Robert Eric Lippert
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.
摘要翻译: 本发明扩展到用于用编译器生成的任务表示各种编程元素的方法,系统和计算机程序产品。 本发明的实施例能够通过对单个和可组合任务对象的句柄来访问方法的未来状态。 例如,重写异步方法以生成并返回对构建器对象的实例的句柄,该对象表示异步方法的一个或多个未来状态。 关于异步方法的操作的信息然后通过句柄传递。 因此,异步方法的状态在完成之前和之后是可追踪的。
-
公开(公告)号:US20080262992A1
公开(公告)日:2008-10-23
申请号:US11737892
申请日:2007-04-20
申请人: Henricus Johannes Maria Meijer , Gavin Bierman , Mads Torgersen , Anders Hejlsberg , Danny Van Velzen , Peter A. Hallam , Robert Eric Lippert , Matthew J. Warren , Paul A. Vick , Amanda Silver
发明人: Henricus Johannes Maria Meijer , Gavin Bierman , Mads Torgersen , Anders Hejlsberg , Danny Van Velzen , Peter A. Hallam , Robert Eric Lippert , Matthew J. Warren , Paul A. Vick , Amanda Silver
IPC分类号: G06F9/44
CPC分类号: G06F9/4488
摘要: Systems and methods facilitate type inference in a computer-programming environment. Type inference can be applied to generic method or function invocation in object-oriented languages to determine a type argument list left implicit by a programmer. One or more type arguments can be identified as a parameter type to which all other types in a set of associated parameter types can be converted.
摘要翻译: 系统和方法便于计算机编程环境中的类型推断。 类型推断可以应用于面向对象语言中的泛型方法或函数调用,以确定程序员隐藏的类型参数列表。 一个或多个类型参数可以被识别为可以转换一组关联参数类型中的所有其他类型的参数类型。
-
公开(公告)号:US07873592B2
公开(公告)日:2011-01-18
申请号:US11737892
申请日:2007-04-20
申请人: Henricus Johannes Maria Meijer , Gavin Bierman , Mads Torgersen , Anders Hejlsberg , Danny Van Velzen , Peter A. Hallam , Robert Eric Lippert , Matthew J. Warren , Paul A. Vick , Amanda Silver
发明人: Henricus Johannes Maria Meijer , Gavin Bierman , Mads Torgersen , Anders Hejlsberg , Danny Van Velzen , Peter A. Hallam , Robert Eric Lippert , Matthew J. Warren , Paul A. Vick , Amanda Silver
CPC分类号: G06F9/4488
摘要: Systems and methods facilitate type inference in a computer-programming environment. Type inference can be applied to generic method or function invocation in object-oriented languages to determine a type argument list left implicit by a programmer. One or more type arguments can be identified as a parameter type to which all other types in a set of associated parameter types can be converted.
摘要翻译: 系统和方法便于计算机编程环境中的类型推断。 类型推断可以应用于面向对象语言中的泛型方法或函数调用,以确定程序员隐藏的类型参数列表。 一个或多个类型参数可以被识别为可以转换一组关联参数类型中的所有其他类型的参数类型。
-
公开(公告)号:US20080320440A1
公开(公告)日:2008-12-25
申请号:US11766514
申请日:2007-06-21
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Mads Torgersen , Peter A. Hallam , Matthew J. Warren , Dinesh C. Kulkarni , Clemens Alden Szyperski
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Mads Torgersen , Peter A. Hallam , Matthew J. Warren , Dinesh C. Kulkarni , Clemens Alden Szyperski
IPC分类号: G06F9/44
CPC分类号: G06F8/72
摘要: Providing for read/write access to captured free variables expressed as environment data objects is disclosed herein. By way of example, free variables can be rewritten as a field of a private class, and accessed via an instance of the private class captured within the environment data object. In such a manner, no need of a placeholder or proxy function is required to access the free variable. Consequently, the subject innovation provides a simplified method for capturing free variables within expression trees and providing read/write access to such variables.
摘要翻译: 提供对作为环境数据对象表示的捕获的可变变量的读/写访问。 作为示例,自由变量可以重写为私有类的字段,并通过环境数据对象中捕获的私有类的实例进行访问。 以这种方式,不需要占位符或代理功能来访问自由变量。 因此,本创新提供了一种简化的方法,用于捕获表达式树中的自由变量,并提供对这些变量的读/写访问。
-
-
-
-
-
-
-
-
-