Timothy Lawrence Harris - Cambridge, GB Mark Ronald Plesko - Kirkland WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 13/00 G06F 13/28
US Classification:
711154, 711167
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. 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
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.
Vinod K. Grover - Mercer Island WA, US Charles L. Mitchell - Kirkland WA, US David Mitford Gillies - Bellevue WA, US Mark Leslie Roberts - Clyde Hill WA, US Mark Ronald Plesko - Kirkland WA, US Andrew James Edwards - Bellevue WA, US Julian Burger - Bothell WA, US Andrew Edward Ayers - Kirkland WA, US Akella V. S. Sastry - Bellevue WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 9/44 G06F 9/45
US Classification:
717148, 717103, 717107, 717120, 717136
Abstract:
A software development architecture is provided for constructing a wide range of software development tools. A software development tool can be created by integrating a specification specifying functionality specific to a set of software development scenarios into a software development scenario-independent framework. The integrated specification can then be compiled to create the software development tool. Alternatively, integration can be achieved at runtime without access to source code. The architecture can use any combination of the following: a software scenario independent intermediate representation format, one or more exception handling models capable of supporting a plurality of programming language specific exception handling models, a type system capable of representing the type representations of a plurality of source languages, and a code generator capable of generating code targeted for a plurality of execution architectures.
Representing Type Information In A Compiler And Programming Tools Framework
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
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.
Coordinating Chores In A Multiprocessing Environment Using A Compiler Generated Exception Table
Eric Dean Tribble - Bellevue WA, US Mark Ronald Plesko - Kirkland WA, US Christopher Wellington Brumme - Mercer Island WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 15/00 G06F 7/38 G06F 9/00 G06F 9/44
US Classification:
712220
Abstract:
The coordination and execution of chores in a multiprocessing environment. The coordination of chores is accomplished utilizing a compiler generated correlation that relates blocks of code that execute chores and blocks of code in which the chore can be realized. By tracking the execution of the program and using the compiler-generated correlation, chores can be identified for the currently executing code.
Extensible Type System For Representing And Checking Consistency Of Program Components During The Process Of Compilation
Mark Plesko - Kirkland WA, US David Tarditi - Kirkland WA, US
Assignee:
Microsoft Corporation
International Classification:
G06F009/45
US Classification:
717/141000
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.
An Extensible Type System For Representing And Checking Consistency Of Program Components During The Process Of Compilation
Mark Plesko - Kirkland WA, US David Tarditi - Kirkland WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 9/44
US Classification:
717131000
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.
Expeditors May 1, 2016 - Apr 2017
Business Systems Analyst
Pivotal Consulting Llc May 1, 2016 - Apr 2017
Business Systems Analyst
Nordstrom Aug 2015 - May 2016
Business Analyst
Fulcrum Technologies Feb 2015 - Jul 2015
Business Systems Analyst
Proquest Aug 2011 - Jan 2015
Analyst, Developer
Mark Plesko 1996 graduate of Hampton High School in Allison park, PA is on Classmates.com. See pictures, plan your class reunion and get caught up with Mark and other high school ...