Programming language support for integrating undo and exception handling

    公开(公告)号:US20060101420A1

    公开(公告)日:2006-05-11

    申请号:US10985353

    申请日:2004-11-11

    IPC分类号: G06F9/44

    CPC分类号: G06F8/51 G06F8/31

    摘要: Existing methods for returning program state to a previous state are often too heavy weight. Often these methods attempt to guarantee a series of properties to a programmer across a distributed environment or multiple threads. Instead, a program state reversion mechanism provides a light weight and efficient runtime solution for general purpose programming languages. For example, a series of program statements (e.g., methods, instructions, etc.) are indicated by a programmer in a state reversion language construct, such as a TryAll block. If an exception is thrown anywhere from within the TryAll block, the program is reverted to the pre-TryAll block state.

    Optimizing automated shader program construction
    4.
    发明申请
    Optimizing automated shader program construction 有权
    优化自动着色程序构建

    公开(公告)号:US20060098018A1

    公开(公告)日:2006-05-11

    申请号:US11255750

    申请日:2005-10-21

    IPC分类号: G06F15/80

    摘要: Although GPUs have been harnessed to solve non-graphics problems, these solutions are not widespread because GPUs remain difficult to program. Instead, an interpreter simplifies the task of programming a GPU by providing language constructs such as a set of data types and operations that are more familiar to non-graphics programmers. The interpreter maps these familiar language constructs to the more difficult graphics programming resources such as DirectX®, OpenGL®, Cg®, and/or HLSL®.

    摘要翻译: 虽然GPU已经被利用来解决非图形问题,但是这些解决方案并不普及,因为GPU仍然难以编程。 相反,解释器通过提供诸如一组数据类型和非图形程序员更熟悉的操作之类的语言结构来简化对GPU编程的任务。 解释器将这些熟悉的语言结构映射到更难的图形编程资源,例如DirectX(R),OpenGL(R),Cg(R)和/或HLSL(R))。

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

    公开(公告)号:US20070136290A1

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

    申请号:US11389299

    申请日:2006-03-23

    IPC分类号: G06F17/30

    摘要: 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.

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

    AN EXTENSIBLE TYPE SYSTEM FOR REPRESENTING AND CHECKING CONSISTENCY OF PROGRAM COMPONENTS DURING THE PROCESS OF COMPILATION
    6.
    发明申请
    AN EXTENSIBLE TYPE SYSTEM FOR REPRESENTING AND CHECKING CONSISTENCY OF PROGRAM COMPONENTS DURING THE PROCESS OF COMPILATION 审中-公开
    用于在编译过程中表示和检查程序组件一致性的可扩展类型系统

    公开(公告)号:US20060242628A1

    公开(公告)日:2006-10-26

    申请号:US11427657

    申请日:2006-06-29

    IPC分类号: G06F9/44

    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.

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

    Typed intermediate representation for object-oriented languages

    公开(公告)号:US20060212861A1

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

    申请号:US11084476

    申请日:2005-03-18

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437

    摘要: Described herein are typed intermediate representations of object-oriented source code that preserve notions of class names, as well as add structure-based information related to classes in the source code. Types in the intermediate representation are divided into corresponding class name-based types and associated structure-based record types. The structure-based record type comprises a layout of objects that are instances of the corresponding class name-based types, where the object comprises one or more data fields and one or more virtual method members. Dynamic types can be abstracted in the form of existential types with sub-classing bounded quantifications. This makes type checking decidable. Existential types bind type variables with sub-classing bounds to represent dynamic types of objects. The layout of those objects can be approximated by structure-based record types. The types of virtual methods in the approximation record types include type variables that represent the dynamic types of those objects to guarantee safety.

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

    公开(公告)号:US20070169030A1

    公开(公告)日:2007-07-19

    申请号: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.

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