Patents by Inventor Steven Lucco
Steven Lucco 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: 11288048Abstract: Dynamic code generation and coordination techniques are provided for display of dynamic markup documents including script code. A code generation process is not only guided by deferral of code preparation stages and sub-stages, but also informed by various information levels possessed concerning the code itself, either through interpretation or observation of execution, to not only generate modified code, but also to generate alternative code for alternative situations (e.g., generating different loop bodies that can thereafter be readily swapped in or out depending on a given function call by the browser application). A multi-core architecture further improves user experience by asymmetrically ensuring web site presentation and functionality is prioritized for the user experience.Type: GrantFiled: October 31, 2017Date of Patent: March 29, 2022Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Steven Lucco, Louis Lafreniere, Curtis Cheng-Cheng Man, Paul Adrian Leathers
-
Patent number: 10628398Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, root objects included in a call stack are identified, which comprise integers and pointers. Integer representations are tagged and distinguishable from untagged pointer representations. Root objects are traced to corresponding memory locations such that a subsequent tracing is performed on the pointer representations and skipped on the integer representations. Memory allocated to objects unreachable by the call stack is then freed. In another aspect, an object graph associated with a call stack is tagged, and a heap is generated comprising objects included in an executed portion of the call stack. Objects included in an unexecuted portion of the call stack are traced to corresponding memory locations on the heap such that a subsequent tracing is only performed on the untagged pointer representations. Memory locations corresponding to heap objects unreachable by the unexecuted portion of the call stack are then cleared.Type: GrantFiled: May 16, 2017Date of Patent: April 21, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Steven Lucco, Curtis Cheng-Cheng Man
-
Patent number: 10466989Abstract: Dynamic code generation and coordination techniques are provided for display of dynamic markup documents including script code. A code generation process is not only guided by deferral of code preparation stages and sub-stages, but also informed by various information levels possessed concerning the code itself, either through interpretation or observation of execution, to not only generate modified code, but also to generate alternative code for alternative situations (e.g., generating different loop bodies that can thereafter be readily swapped in or out depending on a given function call by the browser application). A multi-core architecture further improves user experience by asymmetrically ensuring web site presentation and functionality is prioritized for the user experience.Type: GrantFiled: September 2, 2011Date of Patent: November 5, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Steven Lucco, Louis Lafreniere, Curtis Cheng-Cheng Man, Paul Adrian Leathers
-
Patent number: 10248415Abstract: Dynamic code generation and memory management techniques are provided for component object model (COM) objects with corresponding representations in script code and native code. A browser component can receive script code including the code representing the COM object and a marshaling component is provided that marshals, based on a request for native code representing the COM object, the code representing the COM object to the native code based on a pre-constructed intermediate data structure. The pre-constructed intermediate data structure, such as a virtual table, is pre-constructed based on a dynamic type representation associated with a prototype of the COM object and cached for re-use by the marshaling component. Other embodiments provide finalizer support for memory management of COM objects having script and native world representations including an implementation of a two-phase commit protocol that enables efficient and conservative recycling of objects and associated memory.Type: GrantFiled: April 20, 2016Date of Patent: April 2, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Steven Lucco, Louis Lafreniere, Yong Qu
-
Publication number: 20180046442Abstract: Dynamic code generation and coordination techniques are provided for display of dynamic markup documents including script code. A code generation process is not only guided by deferral of code preparation stages and sub-stages, but also informed by various information levels possessed concerning the code itself, either through interpretation or observation of execution, to not only generate modified code, but also to generate alternative code for alternative situations (e.g., generating different loop bodies that can thereafter be readily swapped in or out depending on a given function call by the browser application). A multi-core architecture further improves user experience by asymmetrically ensuring web site presentation and functionality is prioritized for the user experience.Type: ApplicationFiled: October 31, 2017Publication date: February 15, 2018Inventors: STEVEN LUCCO, LOUIS LAFRENIERE, CURTIS CHENG-CHENG MAN, PAUL ADRIAN LEATHERS
-
Patent number: 9830305Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: GrantFiled: May 31, 2011Date of Patent: November 28, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J. E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Publication number: 20170322955Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, root objects included in a call stack are identified, which comprise integers and pointers. Integer representations are tagged and distinguishable from untagged pointer representations. Root objects are traced to corresponding memory locations such that a subsequent tracing is performed on the pointer representations and skipped on the integer representations. Memory allocated to objects unreachable by the call stack is then freed. In another aspect, an object graph associated with a call stack is tagged, and a heap is generated comprising objects included in an executed portion of the call stack. Objects included in an unexecuted portion of the call stack are traced to corresponding memory locations on the heap such that a subsequent tracing is only performed on the untagged pointer representations. Memory locations corresponding to heap objects unreachable by the unexecuted portion of the call stack are then cleared.Type: ApplicationFiled: May 16, 2017Publication date: November 9, 2017Inventors: STEVEN LUCCO, CURTIS CHENG-CHENG MAN
-
Patent number: 9684679Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, root objects included in a call stack are identified, which comprise integers and pointers. Integer representations are tagged and distinguishable from untagged pointer representations. Root objects are traced to corresponding memory locations such that a subsequent tracing is performed on the pointer representations and skipped on the integer representations. Memory allocated to objects unreachable by the call stack is then freed. In another aspect, an object graph associated with a call stack is tagged, and a heap is generated comprising objects included in an executed portion of the call stack. Objects included in an unexecuted portion of the call stack are traced to corresponding memory locations on the heap such that a subsequent tracing is only performed on the untagged pointer representations. Memory locations corresponding to heap objects unreachable by the unexecuted portion of the call stack are then cleared.Type: GrantFiled: September 15, 2014Date of Patent: June 20, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Steven Lucco, Curtis Cheng-Cheng Man
-
Publication number: 20160232002Abstract: Dynamic code generation and memory management techniques are provided for component object model (COM) objects with corresponding representations in script code and native code. A browser component can receive script code including the code representing the COM object and a marshaling component is provided that marshals, based on a request for native code representing the COM object, the code representing the COM object to the native code based on a pre-constructed intermediate data structure. The pre-constructed intermediate data structure, such as a virtual table, is pre-constructed based on a dynamic type representation associated with a prototype of the COM object and cached for re-use by the marshaling component. Other embodiments provide finalizer support for memory management of COM objects having script and native world representations including an implementation of a two-phase commit protocol that enables efficient and conservative recycling of objects and associated memory.Type: ApplicationFiled: April 20, 2016Publication date: August 11, 2016Applicant: Microsoft Technology Licensing, LLCInventors: Steven Lucco, Louis Lafreniere, Yong Qu
-
Patent number: 9342274Abstract: Dynamic code generation and memory management techniques are provided for component object model (COM) objects with corresponding representations in script code and native code. A browser component can receive script code including the code representing the COM object and a marshaling component is provided that marshals, based on a request for native code representing the COM object, the code representing the COM object to the native code based on a pre-constructed intermediate data structure. The pre-constructed intermediate data structure, such as a virtual table, is pre-constructed based on a dynamic type representation associated with a prototype of the COM object and cached for re-use by the marshaling component. Other embodiments provide finalizer support for memory management of COM objects having script and native world representations including an implementation of a two-phase commit protocol that enables efficient and conservative recycling of objects and associated memory.Type: GrantFiled: May 19, 2011Date of Patent: May 17, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Steven Lucco, Louis Lafreniere, Yong Qu
-
Patent number: 9244896Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: GrantFiled: October 6, 2014Date of Patent: January 26, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J. E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Patent number: 9116867Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: GrantFiled: November 4, 2014Date of Patent: August 25, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J. E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Publication number: 20150058714Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: ApplicationFiled: November 4, 2014Publication date: February 26, 2015Inventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J.E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Publication number: 20150026661Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: ApplicationFiled: October 6, 2014Publication date: January 22, 2015Inventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J.E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Publication number: 20150006557Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, root objects included in a call stack are identified, which comprise integers and pointers. Integer representations are tagged and distinguishable from untagged pointer representations. Root objects are traced to corresponding memory locations such that a subsequent tracing is performed on the pointer representations and skipped on the integer representations. Memory allocated to objects unreachable by the call stack is then freed. In another aspect, an object graph associated with a call stack is tagged, and a heap is generated comprising objects included in an executed portion of the call stack. Objects included in an unexecuted portion of the call stack are traced to corresponding memory locations on the heap such that a subsequent tracing is only performed on the untagged pointer representations. Memory locations corresponding to heap objects unreachable by the unexecuted portion of the call stack are then cleared.Type: ApplicationFiled: September 15, 2014Publication date: January 1, 2015Inventors: STEVEN LUCCO, CURTIS CHENG-CHENG MAN
-
Patent number: 8918759Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: GrantFiled: June 1, 2011Date of Patent: December 23, 2014Assignee: Microsoft CorporationInventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J. E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Patent number: 8881101Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: GrantFiled: May 24, 2011Date of Patent: November 4, 2014Assignee: Microsoft CorporationInventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J. E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Patent number: 8862640Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, root objects included in a call stack are identified, which comprise integers and pointers. Integer representations are tagged and distinguishable from untagged pointer representations. Root objects are traced to corresponding memory locations such that a subsequent tracing is performed on the pointer representations and skipped on the integer representations. Memory allocated to objects unreachable by the call stack is then freed. In another aspect, an object graph associated with a call stack is tagged, and a heap is generated comprising objects included in an executed portion of the call stack. Objects included in an unexecuted portion of the call stack are traced to corresponding memory locations on the heap such that a subsequent tracing is only performed on the untagged pointer representations. Memory locations corresponding to heap objects unreachable by the unexecuted portion of the call stack are then cleared.Type: GrantFiled: April 25, 2011Date of Patent: October 14, 2014Assignee: Microsoft CorporationInventors: Steven Lucco, Curtis Cheng-Cheng Man
-
Patent number: 8646029Abstract: Various embodiments provide an interface between a Web browser's layout engine and a scripting engine. The interface enables objects from the layout engine to be recognized by a memory manager in the scripting engine and interact in a streamlined, efficient manner. In accordance with one or more embodiments, the interface allows browser layout engine objects to be created as objects that are native to the scripting engine. Alternately or additionally, in some embodiments, the native objects are further configured to proxy functionality between the layout engine and the scripting engine.Type: GrantFiled: May 31, 2011Date of Patent: February 4, 2014Assignee: Microsoft CorporationInventors: Travis Leithead, Justin Rogers, Miladin Pavlicic, Curtis Cheng-Cheng Man, Yong Qu, Nathan J. E. Furtwangler, Reza A. Nourai, Steven Lucco
-
Patent number: 8527560Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, a heap of objects is generated during an execution of a script, and script objects in an unexecuted portion are traced to corresponding memory locations on the heap. The heap is then marked concurrently with executing the script such that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then freed concurrently with executing the script based on the marking. In another aspect, an object graph associated with a call stack is generated and traced such that script objects in an unexecuted portion of the stack are traced to corresponding memory locations on a heap. Heap objects are marked concurrently with executing the stack so that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then cleared concurrently with executing the stack based on the marked heap.Type: GrantFiled: March 29, 2011Date of Patent: September 3, 2013Assignee: Microsoft CorporationInventors: Steven Lucco, Curtis Cheng-Cheng Man