Representing type information in a compiler and programming tools framework
    3.
    发明授权
    Representing type information in a compiler and programming tools framework 有权
    在编译器和编程工具框架中表示类型信息

    公开(公告)号:US07788652B2

    公开(公告)日:2010-08-31

    申请号:US10624705

    申请日:2003-07-21

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/20 G06F8/437

    摘要: A representation of types, type-checker, method and compiler are provided for checking consistency in various forms of an intermediate language. Specifically, the typed intermediate language is suitable for use in representing programs written in multiple (heterogeneous) source languages including typed and untyped languages, loosely and strongly typed languages, and languages with and without garbage collection. Additionally, the type checker architecture is extensible to handle new languages with different types and primitive operations. The representation of types can be implemented as a data structure that represents two or more sets of types with one or more sub-structures for representing classifications of types. Alternatively, the type system can be implemented as a base class at the top of a hierarchy and a plurality of classes hierarchically below the base class can be defined to represent a number of types such as pointer types, container types, and function types.

    摘要翻译: 提供了类型,类型检查器,方法和编译器的表示,用于检查各种形式的中间语言的一致性。 具体来说,类型化的中间语言适用于表示以多种(异构)源语言编写的程序,包括类型和非类型语言,松散和强类型语言,以及有和无垃圾回收的语言。 此外,类型检查器架构可扩展以处理具有不同类型和原始操作的新语言。 类型的表示可以被实现为表示具有用于表示类型的分类的一个或多个子结构的两个或更多个类型的数据结构。 或者,类型系统可以被实现为层次结构顶部的基类,并且可以定义分级地在基类之下的多个类以表示诸如指针类型,容器类型和函数类型的多个类型。

    Reducing unnecessary software transactional memory operations on newly-allocated data
    4.
    发明授权
    Reducing unnecessary software transactional memory operations on newly-allocated data 有权
    减少对新分配的数据的不必要的软件事务内存操作

    公开(公告)号:US07861237B2

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

    申请号:US11389598

    申请日:2006-03-23

    IPC分类号: G06F9/45

    摘要: A software transactional memory system is described which utilizes decomposed software transactional memory instructions as well as runtime optimizations to achieve efficient performance. The decomposed instructions allow a compiler with knowledge of the instruction semantics to perform optimizations which would be unavailable on traditional software transactional memory systems. Additionally, high-level software transactional memory optimizations are performed such as code movement around procedure calls, addition of operations to provide strong atomicity, removal of unnecessary read-to-update upgrades, and removal of operations for newly-allocated objects. During execution, multi-use header words for objects are extended to provide for per-object housekeeping, as well as fast snapshots which illustrate changes to objects. Additionally, entries to software transactional memory logs are filtered using an associative table during execution, preventing needless writes to the logs. Finally a garbage collector with knowledge of the software transactional memory system compacts software transactional memory logs during garbage collection.

    摘要翻译: 描述了一种软件事务存储系统,其利用分解的软件事务存储器指令以及运行时优化来实现有效的性能。 分解的指令允许具有指令语义的知识的编译器执行在传统的软件事务存储器系统上不可用的优化。 此外,执行高级软件事务内存优化,例如围绕过程调用的代码移动,添加提供强原子性的操作,去除不必要的读取到更新升级以及删除新分配的对象的操作。 在执行期间,对象的多用标题字进行扩展,以提供每个对象的内务管理,以及快速快照,用于说明对象的更改。 此外,软件事务内存日志的条目在执行期间使用关联表进行过滤,从而防止对日志的不必要的写入。 最后,具有软件事务内存系统知识的垃圾收集器在垃圾收集期间压缩了软件事务内存日志。

    Removal of unnecessary read-to-update upgrades in software transactional memory
    5.
    发明授权
    Removal of unnecessary read-to-update upgrades in software transactional memory 有权
    删除软件事务内存中不必要的读取到更新升级

    公开(公告)号:US07810085B2

    公开(公告)日:2010-10-05

    申请号:US11389299

    申请日:2006-03-23

    IPC分类号: G06F9/45

    摘要: A software transactional memory system is described which utilizes decomposed software transactional memory instructions as well as runtime optimizations to achieve efficient performance. The decomposed instructions allow a compiler with knowledge of the instruction semantics to perform optimizations which would be unavailable on traditional software transactional memory systems. Additionally, high-level software transactional memory optimizations are performed such as code movement around procedure calls, addition of operations to provide strong atomicity, removal of unnecessary read-to-update upgrades, and removal of operations for newly-allocated objects. During execution, multi-use header words for objects are extended to provide for per-object housekeeping, as well as fast snapshots which illustrate changes to objects. Additionally, entries to software transactional memory logs are filtered using an associative table during execution, preventing needless writes to the logs. Finally a garbage collector with knowledge of the software transactional memory system compacts software transactional memory logs during garbage collection.

    摘要翻译: 描述了一种软件事务存储系统,其利用分解的软件事务存储器指令以及运行时优化来实现有效的性能。 分解的指令允许具有指令语义的知识的编译器执行在传统的软件事务存储器系统上不可用的优化。 此外,执行高级软件事务内存优化,例如围绕过程调用的代码移动,添加提供强原子性的操作,去除不必要的读取到更新升级以及删除新分配的对象的操作。 在执行期间,对象的多用标题字进行扩展,以提供每个对象的内务管理,以及快速快照,用于说明对象的更改。 此外,软件事务内存日志的条目在执行期间使用关联表进行过滤,从而防止对日志的不必要的写入。 最后,具有软件事务内存系统知识的垃圾收集器在垃圾收集期间压缩了软件事务内存日志。

    Extensible type system for representing and checking consistency of program components during the process of compilation
    6.
    发明授权
    Extensible type system for representing and checking consistency of program components during the process of compilation 失效
    用于在编译过程中表示和检查程序组件的一致性的可扩展类型系统

    公开(公告)号:US07086041B2

    公开(公告)日:2006-08-01

    申请号:US10607601

    申请日:2003-06-27

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437

    摘要: A representation of types, type-checker, and compiler are provided for checking consistency in various forms of an intermediate language. Type-checking a programming language in a compiler is accomplished by taking one or more rule sets as input to a type-checker, which selects one or more of the rule sets based upon any one, or combination of two or more, of numerous criteria. Among them are stage of compilation, source language, architecture, and level of typing present in the language being type-checked. The language is then type-checked using the selected one or more rule sets. The rule sets can include one rule set corresponding to strong type-checking, one rule set corresponding to weak type-checking, and one rule set corresponding to representation type-checking. In the alternative, a compiler can be provided with a type-checker that constructs the one or more sets of rules at runtime from a larger set of rules based on any one, or combination of two or more, of the previously mentioned criteria.

    摘要翻译: 提供了类型,类型检查器和编译器的表示,用于检查中间语言的各种形式的一致性。 通过将一个或多个规则集作为输入来检查编译器中的编程语言来实现类型检查器,该类型检查器基于许多标准中的任何一个或两个或更多个的组合来选择一个或多个规则集 。 其中包括编译阶段,源语言,架构以及正在类型检查语言中的打字级别。 然后使用所选的一个或多个规则集对该语言进行类型检查。 规则集可以包括对应于强类型检查的一个规则集,对应于弱类型检查的一个规则集,以及对应于表示类型检查的一个规则集。 在替代方案中,可以向编译器提供类型检查器,该类型检查器基于上述标准中的任何一个或两个或更多个的组合从更大的规则集合在运行时构建一组或多组规则。

    Compiler support for optimizing decomposed software transactional memory operations
    7.
    发明授权
    Compiler support for optimizing decomposed software transactional memory operations 有权
    编译器支持优化分解的软件事务内存操作

    公开(公告)号:US08799882B2

    公开(公告)日:2014-08-05

    申请号:US11389451

    申请日:2006-03-23

    IPC分类号: G06F9/45

    CPC分类号: G06F9/466 G06F8/443

    摘要: A software transactional memory system is described which utilizes decomposed software transactional memory instructions as well as runtime optimizations to achieve efficient performance. The decomposed instructions allow a compiler with knowledge of the instruction semantics to perform optimizations which would be unavailable on traditional software transactional memory systems. Additionally, high-level software transactional memory optimizations are performed such as code movement around procedure calls, addition of operations to provide strong atomicity, removal of unnecessary read-to-update upgrades, and removal of operations for newly-allocated objects. During execution, multi-use header words for objects are extended to provide for per-object housekeeping, as well as fast snapshots which illustrate changes to objects. Additionally, entries to software transactional memory logs are filtered using an associative table during execution, preventing needless writes to the logs. Finally a garbage collector with knowledge of the software transactional memory system compacts software transactional memory logs during garbage collection.

    摘要翻译: 描述了一种软件事务存储系统,其利用分解的软件事务存储器指令以及运行时优化来实现有效的性能。 分解的指令允许具有指令语义的知识的编译器执行在传统的软件事务存储器系统上不可用的优化。 此外,执行高级软件事务内存优化,例如围绕过程调用的代码移动,添加提供强原子性的操作,去除不必要的读取到更新升级以及删除新分配的对象的操作。 在执行期间,对象的多用标题字进行扩展,以提供每个对象的内务管理,以及快速快照,用于说明对象的更改。 此外,软件事务内存日志的条目在执行期间使用关联表进行过滤,从而防止对日志的不必要的写入。 最后,具有软件事务内存系统知识的垃圾收集器在垃圾收集期间压缩了软件事务内存日志。

    Type system for representing and checking consistency of heterogeneous program components during the process of compilation
    9.
    发明授权
    Type system for representing and checking consistency of heterogeneous program components during the process of compilation 失效
    在编译过程中键入系统以表示和检查异构程序组件的一致性

    公开(公告)号:US07685581B2

    公开(公告)日:2010-03-23

    申请号:US10607591

    申请日:2003-06-27

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/20 G06F8/437

    摘要: A representation of types, type-checker, method and compiler are provided for checking consistency in various forms of an intermediate language. Specifically, the typed intermediate language is suitable for use in representing programs written in multiple (heterogeneous) source languages including typed and untyped languages, loosely and strongly typed languages, and languages with and without garbage collection. An unknown type representation indicates that an element of the intermediate language is associated with an unknown type. A method of type-checking a code segment written in a programming language is provided using a rule set that contains rules for type-checking an unknown type. The unknown type allows for selectively retaining type information as the compilation process continues and allows multiple programming languages to be type-checked by the same type system.

    摘要翻译: 提供了类型,类型检查器,方法和编译器的表示,用于检查各种形式的中间语言的一致性。 具体来说,类型化的中间语言适用于表示以多种(异构)源语言编写的程序,包括类型和非类型语言,松散和强类型语言,以及有和无垃圾回收的语言。 未知类型表示表示中间语言的元素与未知类型相关联。 使用包含用于对未知类型进行类型检查的规则的规则集来提供对用编程语言编写的代码段进行类型检查的方法。 未知类型允许在编译过程继续时选择性地保留类型信息,并允许通过相同类型系统对多种编程语言进行类型检查。

    Filtering of transactional memory operations using associative tables
    10.
    发明授权
    Filtering of transactional memory operations using associative tables 有权
    使用关联表过滤事务内存操作

    公开(公告)号:US07590806B2

    公开(公告)日:2009-09-15

    申请号:US11390540

    申请日:2006-03-23

    IPC分类号: G06F13/00 G06F13/28

    摘要: A software transactional memory system is described which utilizes decomposed software transactional memory instructions as well as runtime optimizations to achieve efficient performance. The decomposed instructions allow a compiler with knowledge of the instruction semantics to perform optimizations which would be unavailable on traditional software transactional memory systems. Additionally, high-level software transactional memory optimizations are performed such as code movement around procedure calls, addition of operations to provide strong atomicity, removal of unnecessary read-to-update upgrades, and removal of operations for newly-allocated objects. During execution, multi-use header words for objects are extended to provide for per-object housekeeping, as well as fast snapshots which illustrate changes to objects. Additionally, entries to software transactional memory logs are filtered using an associative table during execution, preventing needless writes to the logs. Finally a garbage collector with knowledge of the software transactional memory system compacts software transactional memory logs during garbage collection.

    摘要翻译: 描述了一种软件事务存储系统,其利用分解的软件事务存储器指令以及运行时优化来实现有效的性能。 分解的指令允许具有指令语义的知识的编译器执行在传统的软件事务存储器系统上不可用的优化。 此外,执行高级软件事务内存优化,例如围绕过程调用的代码移动,添加提供强原子性的操作,去除不必要的读取到更新升级以及删除新分配的对象的操作。 在执行期间,对象的多用标题字进行扩展,以提供每个对象的内务管理,以及快速快照,用于说明对象的更改。 此外,软件事务内存日志的条目在执行期间使用关联表进行过滤,从而防止对日志的不必要的写入。 最后,具有软件事务内存系统知识的垃圾收集器在垃圾收集期间压缩了软件事务内存日志。