Patents by Inventor Vance P. Morrison

Vance P. Morrison 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).

  • Patent number: 7367015
    Abstract: A method and system are disclosed for editing a software program in a common language runtime environment, wherein the software program has a source code component, an intermediate language component, and a native code component. The method comprises executing a first portion of the native code component, suspending execution of the native code component at a first point, and allowing a user to edit the source code component to create an edited source code component. The edited source code component is compiled using a source compiler to create an edited intermediate language component, and the edited intermediate language component is compiled using an intermediate language compiler to create an edited native code component. The edited native code component is then executed beginning at the point where execution was previously suspended.
    Type: Grant
    Filed: August 25, 2004
    Date of Patent: April 29, 2008
    Assignee: Microsoft Corporation
    Inventors: William G. Evans, Jennifer A Hamilton, Michael M Magruder, Vance P Morrison, Lawrence B Sullivan, Sean E Trowbridge, Jason L Zander
  • Patent number: 7171655
    Abstract: Verification of intermediate language code. In one embodiment, a computer-implemented method first verifies metadata of an intermediate language code for consistency and accuracy, and then verifying the intermediate language code for consistency and accuracy. This latter part in one embodiment is accomplished by performing first a syntactic check of the intermediate language code, and then a semantic check of the intermediate language code.
    Type: Grant
    Filed: February 19, 2003
    Date of Patent: January 30, 2007
    Assignee: Microsoft Corporation
    Inventors: Andrew Gordon, Donald Syme, Jonathon Forbes, Vance P. Morrison
  • Patent number: 7124405
    Abstract: A system and method for mitigating problems associated with automatic execution of initialization code is provided. The system includes an initialization method activator that can call a class initialization method at a predetermined execution point. The system also includes a deadlock analyzer that can determine whether calling the initialization method will create a deadlock, and, if a deadlock is detected that can resolve such a deadlock. The system also includes a semantic analyzing component that can analyze a semantic type associated with the initialization method and a domain uniqueness analyzer that can analyze the uniqueness of the domain with which the class will interact, to facilitate determining where to place code that will check whether a class is initialized, and if the class is not initialized that will invoke the class initializing method.
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: October 17, 2006
    Assignee: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, Christopher W. Brumme, James S. Miller, Vance P. Morrison, David S. Mortenson, Sean E. Trowbridge
  • Patent number: 6898611
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: June 4, 2001
    Date of Patent: May 24, 2005
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 6851108
    Abstract: A verification module evaluates intermediate language code to verify that the code is type safe before passing the code for execution. Code that is not deemed type safe can cause execution errors, corrupt the runtime environment in which the code is executing, or cause unauthorized access to protected system resources. As such, the verification module protects a computer system from intentional or inadvertent breaches of the computer system's defenses. The verification module verifies the type safety of intermediate language code that supports significant high-level language constructs prohibited by verification modules in the prior art. One exemplary verification module verifies intermediate language code that includes one or more reference-based parameter, such as a pointer (or reference), a value class containing pointers, a RefAny parameter, or a nested pointer.
    Type: Grant
    Filed: November 16, 2000
    Date of Patent: February 1, 2005
    Assignee: Microsoft Corporation
    Inventors: Don Syme, Andrew Gordon, Jonathan A. Forbes, Vance P. Morrison
  • Patent number: 6836884
    Abstract: A method and system are disclosed for editing a software program in a common language runtime environment, wherein the software program has a source code component, an intermediate language component, and a native code component. The method comprises executing a first portion of the native code component, suspending execution of the native code component at a first point, and allowing a user to edit the source code component to create an edited source code component. The edited source code component is compiled using a source compiler to create an edited intermediate language component, and the edited intermediate language component is compiled using an intermediate language compiler to create an edited native code component. The edited native code component is then executed beginning at the point where execution was previously suspended.
    Type: Grant
    Filed: June 4, 2001
    Date of Patent: December 28, 2004
    Assignee: Microsoft Corporation
    Inventors: William G. Evans, Jennifer A. Hamilton, Michael M. Magruder, Vance P. Morrison, Lawrence B. Sullivan, Jr., Sean E. Trowbridge, Jason L. Zander
  • Patent number: 6836883
    Abstract: A method and system for compiling multiple source language files that share a common library. The common library is represented in a common language that can be used by multiple different source languages. Font end compiler systems read the common language files that make up the common library and the source language files that use the library. Additionally, the front end systems produce common language files. The common language files produced by the front end systems can be used in the common library. The common language files may also be supplied to a back end system or runtime environment that further compiles the common language file to an executable form and executes the file. At runtime, the common language file is used by the runtime environment to layout the objects and methods used during execution.
    Type: Grant
    Filed: June 21, 2000
    Date of Patent: December 28, 2004
    Assignee: Microsoft Corporation
    Inventors: Bradley M. Abrams, George H. Bosworth, Christopher W. Brumme, Patrick H. Dussud, Brian D. Harry, James S. Miller, Vance P. Morrison
  • Publication number: 20040261065
    Abstract: A method and system for compiling multiple source language files that share a common library. The common library is represented in a common language that can be used by multiple different source languages. Font end compiler systems read the common language files that make up the common library and the source language files that use the library. Additionally, the front end systems produce common language files. The common language files produced by the front end systems can be used in the common library. The common language files may also be supplied to a back end system or runtime environment that further compiles the common language file to an executable form and executes the file. At runtime, the common language file is used by the runtime environment to layout the objects and methods used during execution.
    Type: Application
    Filed: July 12, 2004
    Publication date: December 23, 2004
    Applicant: Microsoft Corporation
    Inventors: Bradley M. Abrams, George H. Bosworth, Christopher W. Brumme, Patrick H. Dussud, Brian D. Harry, James S. Miller, Vance P. Morrison
  • Patent number: 6748503
    Abstract: A system and method for facilitating unmanaged code participation in a memory management system employing a garbage collection system or service is provided. The invention provides for an unmanaged component to invoke a machine state capturing component that captures machine state (e.g., machine registers and stack pointer) into a machine state data structure and publishes the fact that the unmanaged component desires to participate in garbage collection pointer enumeration. The invention further provides for an unwind component to be invoked during garbage collection that determines register value(s) to facilitate participation in garbage collection pointer enumeration by the unmanaged component. As part of its participation in garbage collection, the unwind component can alter contents of the machine state data structure stored by the machine state capturing component. The invention further provides for an unmanaged component to invoke a machine state restoring component that restores the machine state (e.
    Type: Grant
    Filed: June 27, 2001
    Date of Patent: June 8, 2004
    Assignee: Microsoft Corporation
    Inventor: Vance P. Morrison
  • Publication number: 20030154468
    Abstract: Verification of intermediate language code. In one embodiment, a computer-implemented method first verifies metadata of an intermediate language code for consistency and accuracy, and then verifying the intermediate language code for consistency and accuracy. This latter part in one embodiment is accomplished by performing first a syntactic check of the intermediate language code, and then a semantic check of the intermediate language code.
    Type: Application
    Filed: February 19, 2003
    Publication date: August 14, 2003
    Applicant: Microsoft Corporation
    Inventors: Andrew Gordon, Donald Syme, Jonathon Forbes, Vance P. Morrison
  • Patent number: 6598141
    Abstract: A system and method is provided for executing both managed and unmanaged code in a managed environment and managing memory employing a garbage collection system or service. The code may be precompiled, compiled in real-time or interpreted. The system and method identify roots including object references and interior references on a stack. The object references and interior references are then reported to the garbage collection system or service. The garbage collection system or service employs both the object references and interior references when tracing the heap for objects and data members within the objects. Memory segments that are inaccessible are then reclaimed for assignment to other objects. The garbage collection system or service may be invoked periodically by an operating system, a memory manager or some other service. Alternatively, the garbage collection system can be invoked in response to a request for memory by an executing program.
    Type: Grant
    Filed: March 8, 2001
    Date of Patent: July 22, 2003
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 6560774
    Abstract: Verification of intermediate language code. In one embodiment, a computer-implemented method first verifies metadata of an intermediate language code for consistency and accuracy, and then verifying the intermediate language code for consistency and accuracy. This latter part in one embodiment is accomplished by performing first a syntactic check of the intermediate language code, and then a semantic check of the intermediate language code.
    Type: Grant
    Filed: September 1, 1999
    Date of Patent: May 6, 2003
    Assignee: Microsoft Corporation
    Inventors: Andrew Gordon, Donald Syme, Jonathon Forbes, Vance P. Morrison
  • Patent number: 6484312
    Abstract: Inferring operand types within an intermediate language is disclosed. In one embodiment, a computer-implemented method first inputs an intermediate language code that has a first plurality of opcodes, including a type-indefinite opcode. The method resolves the type-indefinite opcode into a typed opcode, and generates a native code that has a second plurality of opcodes corresponding to the first plurality of opcodes, and which includes an opcode corresponding to the typed opcode. The method finally outputs the native code. An example of an intermediate language is Java.
    Type: Grant
    Filed: June 7, 1999
    Date of Patent: November 19, 2002
    Assignee: Microsoft Corporation
    Inventor: Vance P. Morrison
  • Patent number: 6389590
    Abstract: Indefinite-size variables within an intermediate language are disclosed. In one embodiment, a computer-implemented method first inputs intermediate language code having a size-indefinite variable. The method generates native code based on the intermediate-language code. This includes generating a size-definite variable corresponding to the size-indefinite variable, according to a machine-specific criteria. The method then outputs the native code. In one embodiment, outputting the native code includes executing the native code.
    Type: Grant
    Filed: June 22, 1999
    Date of Patent: May 14, 2002
    Assignee: Microsoft Corporation
    Inventors: James S. Miller, Peter Kukol, Vance P. Morrison