Patents by Inventor Timothy Yat Tim Ng
Timothy Yat Tim Ng 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: 9880860Abstract: 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: GrantFiled: May 5, 2010Date of Patent: January 30, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Donald Syme, Lucas James Hoban, Dmitry Lomov, Timothy Yat Tim Ng
-
Patent number: 9411568Abstract: 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: GrantFiled: April 15, 2010Date of Patent: August 9, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Donald Syme, Luke Hoban, Timothy Yat Tim Ng, Dmitry Lomov
-
Patent number: 9170787Abstract: Compiler functionality is componentized to enable use across different contexts. Conventionally tightly coupled functionality is decoupled and an interface afforded to facilitate interaction with compiler components/subcomponents in various scenarios. In one instance, compiler components can be employed across compile time and runtime. Compile time functionality can be employed at runtime and runtime functionality utilized at compile time thereby blurring the line between time dimensions.Type: GrantFiled: June 27, 2008Date of Patent: October 27, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Avner Y. Aharoni, Henricus Johannes Maria Meijer, Timothy Yat Tim Ng, Amanda K. Silver, Paul A. Vick, Scott Daniel Wisniewski
-
Patent number: 8813027Abstract: Static type checking is performed against external data sources in an interacting editing environment. A rich editing experience can be provided to users for external data equivalent to that provided for internal static, typed data. An extensible compiler is provided so that a user or third party can extend type checking facilities to any external data source. An extensible language service is provided so that a user or third party can extend the language service to provide a consistent, current static view of external data. The extensible compiler and language service allow language extensions to plug into the type checking process. This enables the compiler and language service to provide an extension point that allows extensions of the compiler and allow the language service to render dynamic information statically.Type: GrantFiled: April 14, 2010Date of Patent: August 19, 2014Assignee: Microsoft CorporationInventors: Timothy Yat Tim Ng, Jomo Ahab Fisher, Donald Syme, Lucas James Hoban
-
Patent number: 8479178Abstract: A batch compiler is employed to enable compilation of code provided at runtime. A managed application receives code during execution and invokes the compiler to transform the code to enable it to execute within the context of the receiving application. Among other things, employment of a batch compiler preserves investments made to such compilers while also opening up new scenarios in application scripting and/or hosting that are otherwise unavailable.Type: GrantFiled: June 27, 2008Date of Patent: July 2, 2013Assignee: Microsoft CorporationInventors: Avner Y. Aharoni, Henricus Johannes Maria Meijer, Timothy Yat Tim Ng, Amanda K. Silver, Scott Daniel Wisniewski, Kevin Wagner Halverson, David N. Schach, Aleksey V. Tsingauz, Paul A. Vick
-
Patent number: 8239842Abstract: Modified compilers and other development tools provide implied line continuation within a sequence of syntax tokens of a programming language grammar which includes multiple semantic contexts and which uses line termination as presumptive statement termination. When source code parsing encounters a line terminator adjacent a context-dependent implicit line continuation token in an associated semantic context, an explicit decision is made whether to imply line continuation. Line continuation may also be implied in response to other specified tokens.Type: GrantFiled: February 24, 2009Date of Patent: August 7, 2012Assignee: Microsoft CorporationInventors: Avner Aharoni, Timothy Yat Tim Ng, David N. Schach, Paul Allen Vick, Jr., Lisa Feigenbaum, Sophia Salim, Henricus Johannes Maria Meijer, Jonathan Paul Aneja, Joseph Tyler Whitney
-
Publication number: 20110276983Abstract: 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: ApplicationFiled: May 5, 2010Publication date: November 10, 2011Applicant: Microsoft CorporationInventors: Donald Syme, Lucas James Hoban, Dmitry Lomov, Timothy Yat Tim Ng
-
Publication number: 20110276950Abstract: Architecture that provides a way to plug into a compiler (e.g., F#) and the associated language service. The language components define a standard plug-in mechanism that allows any component to plug into the services and, provide name binding and type resolution services. The compiler and language service utilize the protocol defined (e.g., in the shape of interfaces and classes that must be implemented in order to plug-in to the system) to provide compile time and design time extensions. The architecture provides the ability to define a customized protocol to interact with the compiler's name binding mechanism. The use of this protocol allows not only compilation to succeed, but to also provide rich IDE services, such as name lookup, and value lookup for quick information. Additionally, the capability to provide static type information to satisfy the requirements of a typed programming language is supported.Type: ApplicationFiled: May 5, 2010Publication date: November 10, 2011Applicant: Microsoft CorporationInventors: Jomo A. Fisher, Donald Syme, Lucas J. Hoban, Timothy Yat Tim Ng
-
Publication number: 20110258594Abstract: 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: ApplicationFiled: April 15, 2010Publication date: October 20, 2011Applicant: Microsoft CorporationInventors: Donald Syme, Luke Hoban, Timothy Yat Tim Ng, Dmitry Lomov
-
Publication number: 20110258593Abstract: Static type checking is performed against external data sources in an interacting editing environment. A rich editing experience can be provided to users for external data equivalent to that provided for internal static, typed data. An extensible compiler is provided so that a user or third party can extend type checking facilities to any external data source. An extensible language service is provided so that a user or third party can extend the language service to provide a consistent, current static view of external data. The extensible compiler and language service allow language extensions to plug into the type checking process. This enables the compiler and language service to provide an extension point that allows extensions of the compiler and allow the language service to render dynamic information statically.Type: ApplicationFiled: April 14, 2010Publication date: October 20, 2011Applicant: Microsoft CorporationInventors: Timothy Yat Tim Ng, Jomo Ahab Fisher, Donald Syme, Lucas James Hoban
-
Publication number: 20100218173Abstract: Modified compilers and other development tools provide implied line continuation within a sequence of syntax tokens of a programming language grammar which includes multiple semantic contexts and which uses line termination as presumptive statement termination. When source code parsing encounters a line terminator adjacent a context-dependent implicit line continuation token in an associated semantic context, an explicit decision is made whether to imply line continuation. Line continuation may also be implied in response to other specified tokens.Type: ApplicationFiled: February 24, 2009Publication date: August 26, 2010Applicant: MICROSOFT CORPORATIONInventors: Avner Aharoni, Timothy Yat Tim Ng, David N. Schach, Paul Allen Vick, JR., Lisa Feigenbaum, Sophia Salim, Henricus Johannes Maria Meijer, Jonathan Paul Aneja, Joseph Tyler Whitney
-
Publication number: 20090328012Abstract: A batch compiler is employed to enable compilation of code provided at runtime. A managed application receives code during execution and invokes the compiler to transform the code to enable it to execute within the context of the receiving application. Among other things, employment of a batch compiler preserves investments made to such compilers while also opening up new scenarios in application scripting and/or hosting that are otherwise unavailable.Type: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Avner Y. Aharoni, Henricus Johannes Maria Meijer, Timothy Yat Tim Ng, Amanda K. Silver, Scott Daniel Wisniewski, Kevin Wagner Halverson, David N. Schach, Aleksey V. Tsingauz, Paul A. Vick
-
Publication number: 20090328016Abstract: Expression tree versatility and applicability are enhanced to facilitate programming across various program languages and execution contexts. An expression tree can represent programmatic code as data in a representation common to multiple process mechanisms. As a result, entire programs or portions thereof can be captured and processed by a numerous common language components. Further, language specific concepts can be reduced to the common representation to enable language independent employment.Type: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Timothy Yat Tim Ng, Robert Elliott Viehland, James Hugunin, Samuel Y. Ng, Matthew J. Warren, Anders Hejlsberg, Henricus Johannes Maria Meijer, John Wesley Dyer, Avner Y. Aharoni, John Benjamin Messerly, Martin Maly, William P. Chiles, Mads Torgersen
-
Publication number: 20090328013Abstract: Compiler functionality is componentized to enable use across different contexts. Conventionally tightly coupled functionality is decoupled and an interface afforded to facilitate interaction with compiler components/subcomponents in various scenarios. In one instance, compiler components can be employed across compile time and runtime. Compile time functionality can be employed at runtime and runtime functionality utilized at compile time thereby blurring the line between time dimensions.Type: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Avner Y. Aharoni, Henricus Johannes Maria Meijer, Timothy Yat Tim Ng, Amanda K. Silver, Paul A. Vick, Scott Daniel Wisniewski
-
Publication number: 20080320453Abstract: A type inference option is available for a computer programming language. The option acts as a switch to specify whether or not type inference is applicable (e.g., on or off). Type inference can be employed in conjunction with late binding or options therefor. In this manner, a computer program can be developed with the convenience of type inference and the flexibility of late binding while still maintaining at a degree of type safety.Type: ApplicationFiled: June 21, 2007Publication date: December 25, 2008Applicant: MICROSOFT CORPORATIONInventors: Henricus Johannes Maria Meijer, Amanda Silver, Paul A. Vick, Jonathan Paul Aneja, Timothy Yat Tim Ng, John J. Rivard