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

    公开(公告)号:US20070136365A1

    公开(公告)日:2007-06-14

    申请号:US11389598

    申请日:2006-03-23

    IPC分类号: G06F17/00

    摘要: 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 checker for a typed intermediate representation of object-oriented languages
    12.
    发明申请
    Type checker for a typed intermediate representation of object-oriented languages 审中-公开
    类型检查器用于面向对象语言的类型中间表示

    公开(公告)号:US20060212847A1

    公开(公告)日:2006-09-21

    申请号:US11084374

    申请日:2005-03-18

    IPC分类号: G06F9/44

    CPC分类号: G06F8/437

    摘要: Described herein are methods and systems for applying typing rules for type checking typed intermediate representations of computer program whose source code was written in an object-oriented language. The typing rules are decidable in part because the typed intermediate representation retains class name-based information related to classes from the source code representation. The class name-based information includes information related to class hierarchies, which in part can be used to express sub-classing. Typing rules are applied to parts of the intermediate representation that are typed based on class name-based types and the corresponding structure-based record types. Thus, some typing rules are described herein that are based on sub-classing bounds of type variables. The typing rules include rules related to method calls including type arguments, coercions, existential type operations such as, open and pack.

    摘要翻译: 这里描述的是用于为源代码以面向对象语言编写的计算机程序的类型检查型中间表示应用打字规则的方法和系统。 打字规则是可以解决的,部分原因是类型化的中间表示形式保留了与源代码表示类相关的基于类名的信息。 基于类名的信息包括与类层次相关的信息,其部分可以用于表示子类。 键入规则适用于基于类名称类型和相应的基于结构的记录类型键入的中间表示的部分。 因此,这里描述了基于类型变量的子类的边界的一些打字规则。 打字规则包括与方法调用相关的规则,包括类型参数,强制,存在类型操作,如open和pack。

    Description language for an extensible compiler and tools infrastructure
    13.
    发明申请
    Description language for an extensible compiler and tools infrastructure 有权
    可扩展编译器和工具基础架构的描述语言

    公开(公告)号:US20050022161A1

    公开(公告)日:2005-01-27

    申请号:US10626251

    申请日:2003-07-23

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/70 G06F9/4488

    摘要: Methods and systems are described herein for extending configuration dependent extensible software programs. Classes of a core extensible software program may be extended by adding a configuration dependent extension. The extensions may be added statically prior to compiling the core version of a software program or dynamically at runtime. The declaration of extensible core classes may include an extensibility attribute with an indication of whether the class is statically extensible or dynamically extensible. An object description language is also described herein for appropriately declaring configuration dependent extensible classes. Also, a pre-processor is described herein for processing the object description language to generate a source code representation of the extensible class declarations and their extensions. The source code representation may then be used to generate the extended version of the core software program.

    摘要翻译: 本文描述了用于扩展配置依赖的可扩展软件程序的方法和系统。 可以通过添加配置依赖扩展来扩展核心可扩展软件程序的类。 扩展可以在编译软件程序的核心版本之前静态地添加,或者在运行时动态添加。 可扩展核心类的声明可以包括可扩展性属性,指示该类是静态可扩展还是可动态扩展。 本文还描述了适当地声明配置依赖的可扩展类的对象描述语言。 而且,本文描述了一种用于处理对象描述语言以生成可扩展类声明及其扩展的源代码表示的预处理器。 然后可以使用源代码表示来生成核心软件程序的扩展版本。

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

    公开(公告)号:US20050015673A1

    公开(公告)日:2005-01-20

    申请号:US10607591

    申请日:2003-06-27

    IPC分类号: G06F9/44 H02H3/05

    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.

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