Patents by Inventor Ian H. Carmichael

Ian H. Carmichael 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: 7634778
    Abstract: In an exemplary media implementation, one or more electronically-accessible media include electronically-executable instructions that utilize an application programming interface, the application programming interface facilitating creation of callback-type dynamic function tables; each callback-type dynamic function table including a begin address, an end address, and a callback function, each callback-type dynamic function table corresponding to a code heap that stores code for multiple functions in a runtime environment; wherein interaction between the runtime environment and an operating system is precipitated upon calling the callback function to acquire exception handling and/or unwind information. In another exemplary media implementation, one or more electronically-accessible media include at least part of an operating system that is configured to request from a runtime environment exception handling and/or unwinding information for functions that are managed by the runtime environment.
    Type: Grant
    Filed: June 26, 2003
    Date of Patent: December 15, 2009
    Assignee: Microsoft Corporation
    Inventors: Scott D. Mosier, Ian H. Carmichael, Lawrence B. Sullivan, James J. Radigan, David N. Cutler
  • Patent number: 7610579
    Abstract: A finalizer may include a notification that no tolerance for failure or corruption is expected. Any potential failure point, which may be induced by a runtime execution environment routine or subroutine that is associated with the finalizer may then be prepared apart from the finalizer.
    Type: Grant
    Filed: December 10, 2004
    Date of Patent: October 27, 2009
    Assignee: Microsoft Corporation
    Inventors: Sean E. Trowbridge, Brian M. Grunkemeyer, Christopher W. Brumme, Mahesh Prakriya, Patrick H. Dussud, Ian H. Carmichael
  • Patent number: 7596780
    Abstract: The techniques and mechanisms described herein are directed to a method for virtually catching an exception. A debugger receives a notification identifying information about an exception that occurred during execution of an application. The debugger then selectively chooses a location on a call stack where execution of the application resumes after the stack is unwound up to the selected location. The location being between a statement on the stack causing the exception and a handler on the stack. The handler being identified during a search phase for exception processing. The mechanism being operative for both handled exceptions and unhandled exceptions.
    Type: Grant
    Filed: October 22, 2004
    Date of Patent: September 29, 2009
    Assignee: Microsoft Corporation
    Inventors: Sean Selitrennikoff, Michael M. Magruder, Jonathan W. Keljo, Ian H. Carmichael, Brian D. Harry
  • Patent number: 7516441
    Abstract: A system and method of providing edit and continue support in a software program debugging environment. “Edit and continue” support allows a user (e.g., programmer and/or developer) to update the code and/or data structure(s) of an executing program while it is running. After the user has finished editing their code and resumes execution, an integrated development environment (IDE) propagates the edit(s) into a common language runtime (CLR) environment before continuing. Therefore, from the CLR environment's perspective, an edit is a block of intermediate language code (IL) and/or metadata that is inserted into a running process. Moreover, The IDE can facilitate: determining “legality” of an edit; building the edit; sending the edit to the CLR environment; and/or, facilitating the CLR environment switch execution to the edited code.
    Type: Grant
    Filed: July 21, 2004
    Date of Patent: April 7, 2009
    Assignee: Microsoft Corporation
    Inventors: Jennifer A Hamilton, Michael M Magruder, James H Hogg, William G Evans, Vance P Morrison, Lawrence B Sullivan, Sean E Trowbridge, Jason L Zander, Ian H Carmichael, Patrick H Dussud, John L Hamby, John J Rivard, Li Zhang, Mario Chenier, Douglas Rosen, Steven J Steiner, Peter A Hallam, Brian R Crawford, James S Miller, Sam Spencer, Habib Heydarian
  • Patent number: 7487380
    Abstract: Deterministic code execution may be recovered for programs or portions thereof by implementing a programmable policy on a system host to escalate the scope of a code discard based on various parameters.
    Type: Grant
    Filed: October 14, 2004
    Date of Patent: February 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Christopher W Brumme, WeiWen Liu, Mahesh Prakriya, Sean E Trowbridge, Ian H Carmichael, Patrick H Dussud, Brian M Grunkemeyer
  • Patent number: 7418718
    Abstract: Systems and methods for enhanced runtime hosting are described. In one aspect the runtime hosting interface includes a host abstraction interface. The HAI allowing the runtime to configure host execution environment parameters and/or notify the host of a runtime event. In particular, the host abstraction interface (HAI) corresponds to execution environment abstractions supported by a host application. Responsive to an action or event, the runtime invokes an identified HAI or an associated object during execution of runtime managed code.
    Type: Grant
    Filed: February 3, 2004
    Date of Patent: August 26, 2008
    Assignee: Microsoft Corporation
    Inventors: Weiwen Liu, Steven J. Pratschner, Ian H. Carmichael, Peter A. Carlin, Christopher W. Brumme, Mason K. Bendixen, Beysim Sezgin, Sean E. Trowbridge, Christopher James Brown, Mei-Chin Tsai, Mahesh Prakriya, Raja Krishnaswamy, Alan C. Shi, Suzanne Maurine Cook
  • Patent number: 7406699
    Abstract: Systems and methods for enhanced runtime hosting are described. In one respect, the runtime identifies any abstraction interface(s) exposed by a host application. The abstraction interface(s) correspond to respective execution environment functionality implemented by the hosting application. During execution of runtime managed code and responsive to an action or event associated with an identified one of the respective execution environment abstractions, the runtime calls a specific interface or object corresponding to a specific one of the abstraction interface(s). This allows the host application to customize/enhance its execution environment, which includes the runtime, as a function of the implemented abstraction(s).
    Type: Grant
    Filed: April 2, 2003
    Date of Patent: July 29, 2008
    Assignee: Microsoft Corporation
    Inventors: Weiwen Liu, Steven J. Pratschner, Ian H. Carmichael, Peter A. Carlin, Christopher W. Brumme, Mason K. Bendixen, Beysim Sezgin
  • Publication number: 20040268370
    Abstract: In an exemplary media implementation, one or more electronically-accessible media include electronically-executable instructions that utilize an application programming interface, the application programming interface facilitating creation of callback-type dynamic function tables; each callback-type dynamic function table including a begin address, an end address, and a callback function, each callback-type dynamic function table corresponding to a code heap that stores code for multiple functions in a runtime environment; wherein interaction between the runtime environment and an operating system is precipitated upon calling the callback function to acquire exception handling and/or unwind information. In another exemplary media implementation, one or more electronically-accessible media include at least part of an operating system that is configured to request from a runtime environment exception handling and/or unwinding information for functions that are managed by the runtime environment.
    Type: Application
    Filed: June 26, 2003
    Publication date: December 30, 2004
    Applicant: MICROSOFT CORPORATION
    Inventors: Scott D. Mosier, Ian H. Carmichael, Lawrence B. Sullivan, James J. Radigan, David N. Cutler
  • Publication number: 20040237064
    Abstract: Systems and methods for enhanced runtime hosting are described. In one aspect the runtime hosting interface includes a host abstraction interface. The HAI allowing the runtime to configure host execution environment parameters and/or notify the host of a runtime event. In particular, the host abstraction interface (HAI) corresponds to execution environment abstractions supported by a host application. Responsive to an action or event, the runtime invokes an identified HAI or an associated object during execution of runtime managed code.
    Type: Application
    Filed: February 3, 2004
    Publication date: November 25, 2004
    Applicant: Microsoft Corporation
    Inventors: Weiwen Liu, Steven J. Pratschner, Ian H. Carmichael, Peter A. Carlin, Christopher W. Brumme, Mason K. Bendixen, Beysim Sezgin, Sean E. Trowbridge, Christopher James Brown, Mei-Chin Tsai, Mahesh Prakriya, Raja Krishnaswamy, Alan C. Shi, Suzanne Maurine Cook
  • Publication number: 20040199927
    Abstract: Systems and methods for enhanced runtime hosting are described. In one respect, the runtime identifies any abstraction interface(s) exposed by a host application. The abstraction interface(s) correspond to respective execution environment functionality implemented by the hosting application. During execution of runtime managed code and responsive to an action or event associated with an identified one of the respective execution environment abstractions, the runtime calls a specific interface or object corresponding to a specific one of the abstraction interface(s). This allows the host application to customize/enhance its execution environment, which includes the runtime, as a function of the implemented abstraction(s).
    Type: Application
    Filed: April 2, 2003
    Publication date: October 7, 2004
    Inventors: Weiwen Liu, Steven J. Pratschner, Ian H. Carmichael, Peter A. Carlin, Christopher W. Brumme, Mason K. Bendixen, Beysim Sezgin