Patents by Inventor Dmitry Lomov

Dmitry Lomov 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: 9880860
    Abstract: Architecture that includes an asynchronous library which remembers the synchronization context that initiated an asynchronous method call and when the request is completed, the library restores the synchronization context of the calling thread before executing a callback. This ensures that the callback executes on the same thread as the original asynchronous request. The callback to the asynchronous operation that asynchronous library provides automatically “jumps threads” to maintain thread affinity.
    Type: Grant
    Filed: May 5, 2010
    Date of Patent: January 30, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Donald Syme, Lucas James Hoban, Dmitry Lomov, Timothy Yat Tim Ng
  • Patent number: 9411568
    Abstract: A system and method for implementing an asynchronous construct in a computer program. A state machine is generated from the computer program, and the program is translated to generate code that executes the state machine during runtime. The asynchronous construct may be made into a function that invokes an asynchronous function, passing the function as a callback, and then exits. When the asynchronous operation completes, the function is invoked as a callback, returning to a configuration equivalent to that prior to the asynchronous call. Variable closure may be used to maintain the state of variables during a state prior to invoking the asynchronous operation and a state after invoking the asynchronous operation.
    Type: Grant
    Filed: April 15, 2010
    Date of Patent: August 9, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Donald Syme, Luke Hoban, Timothy Yat Tim Ng, Dmitry Lomov
  • Patent number: 8918767
    Abstract: The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results.
    Type: Grant
    Filed: June 16, 2011
    Date of Patent: December 23, 2014
    Assignee: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Niklas Gustafsson, Dmitry Lomov, Matthew J. Warren
  • Patent number: 8893090
    Abstract: Stepping out of an asynchronous process. A method includes, as part of a computer program execution, at a caller, making an asynchronous function call from the caller to a callee. Associated with the asynchronous function call a continuation waits for the completion of the callee with respect to the asynchronous function call. The method further includes correlating a debugging indicator to the callee indicating that a user wishes to step out of the caller when the callee returns. An indication of completion of the callee with respect to the asynchronous function call and that a user wishes to step from the callee to the continuation is received. The debugging indicator is referenced and based on the debugging indicator execution at entry into the continuation is stopped.
    Type: Grant
    Filed: April 15, 2011
    Date of Patent: November 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Ian William James Halliday, Gregg Bernard Miskelly, Stephen H. Toub, Dmitry Lomov
  • Patent number: 8756572
    Abstract: A debugger can step through target code in a computer program. The debugger can identify a coroutine yield point in the target code, and can obtain identifying information to identify continued processing of a coroutine instance triggered by the operator. The debugger can set a breakpoint at a location for continued stepping after the coroutine yield point. The breakpoint can have a condition of matching the identifying information with runtime information. The debugger can perform the coroutine instance and resume execution of the target code after the coroutine yield point. The debugger can also encounter the breakpoint in the target code, and can determine whether the condition of the breakpoint is met. If so, the debugger can pause execution of the target code at the breakpoint. If not, the debugger can continue execution of the target code past the breakpoint without pausing at the breakpoint.
    Type: Grant
    Filed: March 22, 2011
    Date of Patent: June 17, 2014
    Assignee: Microsoft Corporation
    Inventors: Ian W. J. Halliday, Gregory B. Miskelly, Stephen H. Toub, Dmitry Lomov, Kayle K. Hinkle, III
  • Patent number: 8572585
    Abstract: The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.
    Type: Grant
    Filed: June 16, 2011
    Date of Patent: October 29, 2013
    Assignee: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wishchik, Anders Hejlsberg, Dmitry Lomov, Matthew J. Warren, Robert Eric Lippert
  • Publication number: 20120324457
    Abstract: The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.
    Type: Application
    Filed: June 16, 2011
    Publication date: December 20, 2012
    Applicant: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Dmitry Lomov, Matthew J. Warren, Robert Eric Lippert
  • Publication number: 20120324431
    Abstract: The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results.
    Type: Application
    Filed: June 16, 2011
    Publication date: December 20, 2012
    Applicant: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Niklas Gustafsson, Dmitry Lomov, Matthew J. Warren
  • Publication number: 20120266144
    Abstract: Stepping out of an asynchronous process. A method includes, as part of a computer program execution, at a caller, making an asynchronous function call from the caller to a callee. Associated with the asynchronous function call a continuation waits for the completion of the callee with respect to the asynchronous function call. The method further includes correlating a debugging indicator to the callee indicating that a user wishes to step out of the caller when the callee returns. An indication of completion of the callee with respect to the asynchronous function call and that a user wishes to step from the callee to the continuation is received. The debugging indicator is referenced and based on the debugging indicator execution at entry into the continuation is stopped.
    Type: Application
    Filed: April 15, 2011
    Publication date: October 18, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Ian William James Halliday, Gregg Bernard Miskelly, Stephen H. Toub, Dmitry Lomov
  • Publication number: 20120246624
    Abstract: A debugger can step through target code in a computer program. The debugger can identify a coroutine yield point in the target code, and can obtain identifying information to identify continued processing of a coroutine instance triggered by the operator. The debugger can set a breakpoint at a location for continued stepping after the coroutine yield point. The breakpoint can have a condition of matching the identifying information with runtime information. The debugger can perform the coroutine instance and resume execution of the target code after the coroutine yield point. The debugger can also encounter the breakpoint in the target code, and can determine whether the condition of the breakpoint is met. If so, the debugger can pause execution of the target code at the breakpoint. If not, the debugger can continue execution of the target code past the breakpoint without pausing at the breakpoint.
    Type: Application
    Filed: March 22, 2011
    Publication date: September 27, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Ian W. J. Halliday, Gregory B. Miskelly, Stephen H. Toub, Dmitry Lomov, Kayle K. Hinkle, III
  • Publication number: 20120110560
    Abstract: A system and method for facilitating development of a computer program that interfaces with a Web Semantic store (WSS). A system queries an WSS to retrieve interface information, including schema information corresponding to a portion of data in the WSS relevant to a user application. The system uses the retrieved information to provide an integrated development environment to a user. The IDE may include one or more features such as completion lists, tool tips, and quick info. The schema information may be used to create synthetic types for use in the target program. The interface information may be used to create synthetic elements to be inserted into a target program. The synthetic types may be used to perform static type checking during an editing session or a program compilation, or to provide the IDE services. During a build, the synthetic elements may be removed and replaced with WSS access code, which is subsequently used during program runtime to access the store.
    Type: Application
    Filed: October 27, 2010
    Publication date: May 3, 2012
    Applicant: Microsoft Corporation
    Inventors: Jomo Fisher, Luke Hoban, Timothy Y. Ng, Dmitry Lomov, Donald Syme
  • Publication number: 20110276983
    Abstract: Architecture that includes an asynchronous library which remembers the synchronization context that initiated an asynchronous method call and when the request is completed, the library restores the synchronization context of the calling thread before executing a callback. This ensures that the callback executes on the same thread as the original asynchronous request. The callback to the asynchronous operation that asynchronous library provides automatically “jumps threads” to maintain thread affinity.
    Type: Application
    Filed: May 5, 2010
    Publication date: November 10, 2011
    Applicant: Microsoft Corporation
    Inventors: Donald Syme, Lucas James Hoban, Dmitry Lomov, Timothy Yat Tim Ng
  • Publication number: 20110258594
    Abstract: A system and method for implementing an asynchronous construct in a computer program. A state machine is generated from the computer program, and the program is translated to generate code that executes the state machine during runtime. The asynchronous construct may be made into a function that invokes an asynchronous function, passing the function as a callback, and then exits. When the asynchronous operation completes, the function is invoked as a callback, returning to a configuration equivalent to that prior to the asynchronous call. Variable closure may be used to maintain the state of variables during a state prior to invoking the asynchronous operation and a state after invoking the asynchronous operation.
    Type: Application
    Filed: April 15, 2010
    Publication date: October 20, 2011
    Applicant: Microsoft Corporation
    Inventors: Donald Syme, Luke Hoban, Timothy Yat Tim Ng, Dmitry Lomov