-
公开(公告)号:US20070028210A1
公开(公告)日:2007-02-01
申请号:US11193692
申请日:2005-07-29
申请人: Erik Meijer , Anders Hejlsberg , Matthew Warren , Luca Bolognese , Peter Hallam , Gary Katzenberger
发明人: Erik Meijer , Anders Hejlsberg , Matthew Warren , Luca Bolognese , Peter Hallam , Gary Katzenberger
CPC分类号: G06F9/44589 , G06F9/45516
摘要: A program execution engine that facilitates generic type variance verification is provided. The execution engine receives a program executable in the form of intermediate language (IL). The program executable can be based on code that includes expression(s) with generic type(s) which have been identified as requiring variance verification (e.g., covariance and/or contra-variance). The execution engine includes a variance verification component that dynamically determines whether value(s) associated with the generic type(s) identified as requiring variance verification comply with the particular variance verification requirement. The variance verification component can provide error information (e.g., throw an exception), if the specified variance is not safely compliant Variance verification can be based on static checking which places the burden on a source language compiler to emit the run-time checks in intermediate language (IL), if run-time checked variance is required. Additionally, language(s) that do not support variance can treat generic type(s) as non-variant.
摘要翻译: 提供了促进通用类型方差验证的程序执行引擎。 执行引擎以中间语言(IL)的形式接收可执行的程序。 程序可执行程序可以基于包括已经被识别为需要方差验证(例如协方差和/或反差)的通用类型的表达式的代码。 执行引擎包括方差验证组件,其动态地确定与被识别为需要方差验证的通用类型相关联的值是否符合特定方差验证要求。 方差验证组件可以提供错误信息(例如抛出异常),如果指定的方差不能安全地符合方差验证可以基于静态检查,这会使源语言编译器的负担在中间体中发出运行时检查 语言(IL),如果运行时检查方差是必需的。 另外,不支持差异的语言可以将通用类型视为非变体。
-
公开(公告)号:US20060048095A1
公开(公告)日:2006-03-02
申请号:US10930145
申请日:2004-08-31
申请人: Henricus Meijer , Eric Gunnerson , Peter Hallam , Anders Hejlsberg , Gary Katzenberger , Matthew Warren
发明人: Henricus Meijer , Eric Gunnerson , Peter Hallam , Anders Hejlsberg , Gary Katzenberger , Matthew Warren
IPC分类号: G06F9/44
CPC分类号: G06F8/434
摘要: The present invention discloses an improved system and method for specifying and compiling computer programs. Type aliases are introduced whose binding is inferred by a type inference component during compilation. Once declared, type aliases can be utilized just like regular types thereby providing added efficiency in coding, among other things. Additionally, a mechanism for specifying the introduction of a new variable whose type is to be inferred is disclosed. This mechanism clears up an ambiguity during type inference concerning whether to infer a new variable type or utilize a variable in scope. Further yet, an efficient type inference system and method is disclosed to effectively deal with overloading among other things.
摘要翻译: 本发明公开了一种用于指定和编译计算机程序的改进的系统和方法。 引入类型别名,其编译期间由类型推断组件推断其绑定。 一旦声明,类别别可以像常规类型一样使用,从而提高编码的效率等等。 另外,公开了一种用于指定引入类型被推断的新变量的机制。 这种机制在关于是推断新的变量类型还是在范围中使用变量的类型推理中清除了歧义。 此外,公开了一种有效的类型推理系统和方法,以有效地处理超负荷等。
-
公开(公告)号:US20060053131A1
公开(公告)日:2006-03-09
申请号:US10935247
申请日:2004-09-07
申请人: Henricus Meijer , Anders Hejlsberg , Eric Gunnerson , Gary Katzenberger , Peter Hallam , Matthew Warren
发明人: Henricus Meijer , Anders Hejlsberg , Eric Gunnerson , Gary Katzenberger , Peter Hallam , Matthew Warren
IPC分类号: G06F7/00
CPC分类号: G06F8/31 , Y10S707/99934 , Y10S707/99935 , Y10S707/99942 , Y10S707/99945
摘要: The subject invention relates to systems and methods that provide null capabilities within the context of programming languages. In one aspect, a system is provided that facilitates null-support in various programming languages. The system includes one or more types associated with at least one programming language. A type modifier is provided to signal that the type is nullable. The type modifier enables a multi-element structure to be automatically created in association with the type wherein, the multi-element structure includes the type and a Boolean element indicating whether or not the variable is null.
摘要翻译: 本发明涉及在编程语言的上下文中提供零能力的系统和方法。 在一个方面,提供了一种促进各种编程语言的空支持的系统。 该系统包括与至少一种编程语言相关联的一种或多种类型。 提供一个类型修饰符来表示该类型为空。 类型修饰符使得能够与其中多元素结构包括类型的类型相关联地自动创建多元素结构,并且指示该变量是否为空的布尔元素。
-
公开(公告)号:US07992140B2
公开(公告)日:2011-08-02
申请号:US11193721
申请日:2005-07-29
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Dinesh Chandrakant Kulkarni , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Donald Box
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Dinesh Chandrakant Kulkarni , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Donald Box
摘要: A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
摘要翻译: 支持语言的编译器,其中选择的语义对象被表示为数据对象。 数据对象可以以多种方式用于扩展编程语言的能力。 数据对象可以传递给应用程序,并用于为该应用程序创建可执行指令。 以这种方式,用编译器的母语编写的指令可以用于控制接受与编译器的本机语言不一致的语言的程序的应用程序。 编译器的语法检查和变量绑定功能可以用于将由与编译器生成的目标代码分离的应用程序执行的那些指令。 可以基于包含在源代码中的快速操作来选择表示为数据对象的语义对象,或者可以基于隐式类型转换。
-
公开(公告)号:US20110246973A1
公开(公告)日:2011-10-06
申请号:US13161816
申请日:2011-06-16
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Dinesh Chandrakant Kulkarni , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Donald Box
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Dinesh Chandrakant Kulkarni , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Donald Box
IPC分类号: G06F9/45
摘要: A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
摘要翻译: 支持语言的编译器,其中选择的语义对象被表示为数据对象。 数据对象可以以多种方式用于扩展编程语言的能力。 数据对象可以传递给应用程序,并用于为该应用程序创建可执行指令。 以这种方式,用编译器的母语编写的指令可以用于控制接受与编译器的本机语言不一致的语言的程序的应用程序。 编译器的语法检查和变量绑定功能可以用于将由与编译器生成的目标代码分离的应用程序执行的那些指令。 可以基于包含在源代码中的快速操作来选择表示为数据对象的语义对象,或者可以基于隐式类型转换。
-
公开(公告)号:US08458678B2
公开(公告)日:2013-06-04
申请号:US13161816
申请日:2011-06-16
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew Warren , Dinesh Chandrakant Kulkarni , Luca Bolognese , Peter A. Hallam , Gary Shon Katzenberger , Donald F. Box
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew Warren , Dinesh Chandrakant Kulkarni , Luca Bolognese , Peter A. Hallam , Gary Shon Katzenberger , Donald F. Box
摘要: A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
摘要翻译: 支持语言的编译器,其中选择的语义对象被表示为数据对象。 数据对象可以以多种方式用于扩展编程语言的能力。 数据对象可以传递给应用程序,并用于为该应用程序创建可执行指令。 以这种方式,用编译器的母语编写的指令可以用于控制接受与编译器的本机语言不一致的语言的程序的应用程序。 编译器的语法检查和变量绑定功能可以用于将由与编译器生成的目标代码分离的应用程序执行的那些指令。 可以基于包含在源代码中的快速操作来选择表示为数据对象的语义对象,或者可以基于隐式类型转换。
-
公开(公告)号:US08370801B2
公开(公告)日:2013-02-05
申请号:US12728939
申请日:2010-03-22
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Dinesh C. Kulkarni
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Dinesh C. Kulkarni
IPC分类号: G06F9/44
CPC分类号: G06F8/315
摘要: Architecture that extends existing types including constructed and sealed types using extension methods. Extension methods are static methods that can be invoked using instance method syntax. Extension methods are declared by specifying the keyword “this” as a modifier on the first parameter of the methods. Extension methods have all the capabilities of regular static methods. In addition, once imported, extension methods can be invoked using instance method syntax. Also disclosed are rules for importing extension methods, and extension method invocations. Extension methods are imported through using-namespace-directives. In addition to importing the types contained in a namespace, a using-namespace-directive imports all extension methods in all static classes in the namespace. In effect, imported extension methods appear as additional methods on the types that are given by their first parameter and have lower precedence than regular instance methods.
摘要翻译: 使用扩展方法扩展现有类型(包括构造和密封类型)的体系结构。 扩展方法是可以使用实例方法语法调用的静态方法。 通过将关键字this指定为方法的第一个参数的修饰符来声明扩展方法。 扩展方法具有常规静态方法的所有功能。 另外,一旦导入,可以使用实例方法语法来调用扩展方法。 还公开了导入扩展方法和扩展方法调用的规则。 扩展方法通过using-namespace-directives导入。 除了导入命名空间中包含的类型之外,using-namespace-directive会在命名空间中的所有静态类中导入所有扩展方法。 实际上,导入的扩展方法在其第一个参数给出的类型上显示为附加方法,并且具有比常规实例方法更低的优先级。
-
公开(公告)号:US07743066B2
公开(公告)日:2010-06-22
申请号:US11193601
申请日:2005-07-29
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Dinesh C. Kulkarni
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Dinesh C. Kulkarni
CPC分类号: G06F17/30421 , G06F17/3041
摘要: Anonymous types for a programming language. Non-denotable anonymous types are types that a compiler generates on behalf of a programmer and can then be used as nominal types. Insofar as anonymous types do not have a name, they can be used only inside a method in which they are created. Additionally, an anonymous type cannot be exposed in any way outside of the method. Syntax to create an anonymous type is useful when employed with a Select operator to generate a result with a particular shape, without the need of having a regular type for it. Anonymous types are expressible such that an expression of that type can be written. Translation of an anonymous type by a compiler generates a nominal class that implements Equals and GetHashCode methods. There is equivalence of anonymous types within the same method, and conversion of an unrealized structural type into structurally compatible nominal type.
摘要翻译: 编程语言的匿名类型。 不可表示的匿名类型是编译器代表程序员生成的类型,然后可以用作标称类型。 只要匿名类型没有名称,它们只能在创建它们的方法中使用。 此外,匿名类型不能以任何方式暴露在该方法之外。 创建匿名类型的语法在与“选择”运算符一起使用以生成具有特定形状的结果时非常有用,而无需为其定义类型。 匿名类型是可表达的,使得可以写入该类型的表达式。 编译器生成一个匿名类型,生成一个实现Equals和GetHashCode方法的标称类。 在同一方法中存在匿名类型的等价物,并将未实现的结构类型转换为结构兼容的名义类型。
-
公开(公告)号:US07702686B2
公开(公告)日:2010-04-20
申请号:US11193574
申请日:2005-07-29
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Dinesh Chandrakant Kulkarni , Luca Bolognese , Matthew J. Warren , Peter A. Hallam
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Dinesh Chandrakant Kulkarni , Luca Bolognese , Matthew J. Warren , Peter A. Hallam
CPC分类号: G06F17/30595 , G06F17/30607
摘要: Systems and methods that enable consistent navigation (for a database and memory environment) in object relational mapping. This typically ensures fidelity of object graph via restrictions on collections of persistent objects (e.g., entity sets, entity refs . . . ). Moreover, a tracking component can detect changes as they occur, and only a copy of the objects that have changed can be created, to optimize operation.
摘要翻译: 在对象关系映射中实现一致导航(用于数据库和内存环境)的系统和方法。 这通常通过对持久对象的集合(例如,实体集,实体参考)的限制来确保对象图的保真度。 此外,跟踪组件可以检测到它们发生的变化,并且可以仅创建已经改变的对象的副本来优化操作。
-
公开(公告)号:US07685567B2
公开(公告)日:2010-03-23
申请号:US11192919
申请日:2005-07-29
申请人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Dinesh C. Kulkarni
发明人: Henricus Johannes Maria Meijer , Anders Hejlsberg , Matthew J. Warren , Luca Bolognese , Peter A. Hallam , Gary S. Katzenberger , Dinesh C. Kulkarni
IPC分类号: G06F9/44
CPC分类号: G06F8/315
摘要: Architecture that extends existing types including constructed and sealed types using extension methods. Extension methods are static methods that can be invoked using instance method syntax. Extension methods are declared by specifying the keyword “this” as a modifier on the first parameter of the methods. Extension methods have all the capabilities of regular static methods. In addition, once imported, extension methods can be invoked using instance method syntax. Also disclosed are rules for importing extension methods, and extension method invocations. Extension methods are imported through using-namespace-directives. In addition to importing the types contained in a namespace, a using-namespace-directive imports all extension methods in all static classes in the namespace. In effect, imported extension methods appear as additional methods on the types that are given by their first parameter and have lower precedence than regular instance methods.
摘要翻译: 使用扩展方法扩展现有类型(包括构造和密封类型)的体系结构。 扩展方法是可以使用实例方法语法调用的静态方法。 扩展方法通过在方法的第一个参数上指定关键字“this”作为修饰符来声明。 扩展方法具有常规静态方法的所有功能。 另外,一旦导入,可以使用实例方法语法来调用扩展方法。 还公开了导入扩展方法和扩展方法调用的规则。 扩展方法通过using-namespace-directives导入。 除了导入命名空间中包含的类型之外,using-namespace-directive会在命名空间中的所有静态类中导入所有扩展方法。 实际上,导入的扩展方法在其第一个参数给出的类型上显示为附加方法,并且具有比常规实例方法更低的优先级。
-
-
-
-
-
-
-
-
-