Patents by Inventor David Tarditi

David Tarditi has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20070169030
    Abstract: 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.
    Type: Application
    Filed: March 23, 2006
    Publication date: July 19, 2007
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Timothy Harris, Mark Plesko, Avraham Shinnar
  • Publication number: 20070136365
    Abstract: 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.
    Type: Application
    Filed: March 23, 2006
    Publication date: June 14, 2007
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Mark Plesko
  • Publication number: 20070136290
    Abstract: 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.
    Type: Application
    Filed: March 23, 2006
    Publication date: June 14, 2007
    Applicant: Microsoft Corporation
    Inventors: Avraham Shinnar, Timothy Harris, David Tarditi, Mark Plesko
  • Publication number: 20070094495
    Abstract: Described herein are one or more implementations of an operating system that provides for statically verifiable inter-process communication between isolated processes. Also, described herein are one or more implementations of programming tools that facilitate the development of statically verifiable isolated processes having inter-process communication.
    Type: Application
    Filed: June 30, 2006
    Publication date: April 26, 2007
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, Martin Abadi, Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel, Orion Hodson, Steven Levi, Nicholas Murphy, Bjarne Steensgaard, David Tarditi, Edward Wobber, Brian Zill
  • Publication number: 20070094673
    Abstract: Described herein are one or more implementations for describing and/or addressing the configuration requirements of applications, extensions, device drivers, and other components of a software system.
    Type: Application
    Filed: June 30, 2006
    Publication date: April 26, 2007
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, Manuel Fanndrich, Orion Hodson, Steven Levi, Bjarne Steensgaard, David Tarditi, Michael Spear, Michael Carbin
  • Publication number: 20060242628
    Abstract: 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.
    Type: Application
    Filed: June 29, 2006
    Publication date: October 26, 2006
    Applicant: Microsoft Corporation
    Inventors: Mark Plesko, David Tarditi
  • Publication number: 20060212847
    Abstract: 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.
    Type: Application
    Filed: March 18, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Juan Chen
  • Publication number: 20060212861
    Abstract: 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.
    Type: Application
    Filed: March 18, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Juan Chen
  • Publication number: 20060107250
    Abstract: 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 languages such as DirectX®, OpenGL®, Cg®, and/or HLSL®.
    Type: Application
    Filed: December 3, 2004
    Publication date: May 18, 2006
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Raymond Endres, Vivian Sewelson
  • Publication number: 20060098019
    Abstract: 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®.
    Type: Application
    Filed: October 21, 2005
    Publication date: May 11, 2006
    Applicant: Microsoft Corporation
    Inventors: David Tarditi,, Vivian Sewelson
  • Publication number: 20060098018
    Abstract: 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®.
    Type: Application
    Filed: October 21, 2005
    Publication date: May 11, 2006
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Vivian Sewelson
  • Publication number: 20060101420
    Abstract: 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.
    Type: Application
    Filed: November 11, 2004
    Publication date: May 11, 2006
    Applicant: Microsoft Corporation
    Inventors: Avraham Shinnar, David Tarditi, Bjarne Steensgaard
  • Publication number: 20060098017
    Abstract: 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 languages such as DirectX®, OpenGL®, Cg®, and/or HLSL®.
    Type: Application
    Filed: November 5, 2004
    Publication date: May 11, 2006
    Applicant: Microsoft Corporation
    Inventors: David Tarditi, Raymond Endres, Vivian Sewelson
  • Publication number: 20050022161
    Abstract: 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: Application
    Filed: July 23, 2003
    Publication date: January 27, 2005
    Inventors: Julian Burger, David Tarditi, Charles Mitchell, Andrew Ayers, Vinod Grover
  • Publication number: 20050015673
    Abstract: 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.
    Type: Application
    Filed: June 27, 2003
    Publication date: January 20, 2005
    Inventors: Mark Plesko, David Tarditi