Patents by Inventor Neal M. Gafter
Neal M. Gafter 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: 11372630Abstract: Efficient immutable syntax representation with parent pointers under incremental change is enabled by creating a data structure comprising at least one tree structure that allows both upward and downward references in the tree and a tree structure that is immutable (read-only), and allows parts of itself to be re-used in other data structures. The data structure described enables tools to search and target particular sub trees. The fragment of the tree representing the targeted sub tree is produced as it is used. The rest of the tree is not produced. The read-only tree retains relative information, allowing it to be reassembled and shared.Type: GrantFiled: February 17, 2020Date of Patent: June 28, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Matthew J. Warren, Mads Torgersen, Renaud Paquay, Neal M. Gafter, Jared Parsons, David N. Schach, Aleksey V. Tsingauz, Peter Golde, Kevin Andrew Pilch, Karen Liu
-
Publication number: 20200183667Abstract: Efficient immutable syntax representation with parent pointers under incremental change is enabled by creating a data structure comprising at least one tree structure that allows both upward and downward references in the tree and a tree structure that is immutable (read-only), and allows parts of itself to be re-used in other data structures. The data structure described enables tools to search and target particular sub trees. The fragment of the tree representing the targeted sub tree is produced as it is used. The rest of the tree is not produced. The read-only tree retains relative information, allowing it to be reassembled and shared.Type: ApplicationFiled: February 17, 2020Publication date: June 11, 2020Inventors: Matthew J. Warren, Avner Y. Aharoni, Mads Torgersen, Renaud Paquay, Neal M. Gafter, Jared Parsons, David N. Schach, Aleksey V. Tsingauz, Peter Golde, Kevin Pilch-Bisson, Karen Liu
-
Patent number: 10564944Abstract: Efficient immutable syntax representation with parent pointers under incremental change is enabled by creating a data structure comprising at least one tree structure that allows both upward and downward references in the tree and a tree structure that is immutable (read-only), and allows parts of itself to be re-used in other data structures. The data structure described enables tools to search and target particular sub trees. The fragment of the tree representing the targeted sub tree is produced as it is used. The rest of the tree is not produced. The read-only tree retains relative information, allowing it to be reassembled and shared.Type: GrantFiled: January 7, 2010Date of Patent: February 18, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Matthew J. Warren, Avner Y. Aharoni, Mads Torgersen, Renaud Paquay, Neal M. Gafter, Jared Parsons, David N. Schach, Aleksey V. Tsingauz, Peter Golde, Kevin Pilch-Bisson, Karen Liu
-
Patent number: 9003377Abstract: Unsuspended co-routines are handled by the machine call stack mechanism in which the stack grows and shrinks as recursive calls are made and returned from. When a co-routine is suspended, however, additional call stack processing is performed. A suspension message is issued, and the entire resume-able part of the call stack is removed, and is copied to the heap. A frame that returns control to a driver method (a resumer) is copied to the call stack so that resumption of the co-routine does not recursively reactivate the whole call stack. Instead the resumer reactivates only the topmost or most current frame called the leaf frame. When a co-routine is suspended, it does not return to its caller, but instead returns to the resumer that has reactivated it.Type: GrantFiled: January 7, 2010Date of Patent: April 7, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Neal M. Gafter, Mads Torgersen, Henricus Johannes Maria Meijer, Niklas Gustafsson
-
Patent number: 8549506Abstract: APIs are provided, that are external to a programming language but that provide functionality that can be plugged into a language compiler. The provided APIs tailor functionality associated with asynchronous programming, iterators or writing symmetric co-routines using a generalized pattern-based approach. Several types of resumable methods are provided in the APIs which can be applied to method bodies written in traditional program code. Syntactically distinguishable control points in method bodies written in traditional program code invoke transformation of the code by the compiler using the external APIs. The transformed code enables the pausing and resumption of the code sandwiched between control points in the transformed code. The source code contained within a method having control points in it is transformed so that code within the method can be executed in discrete parts, each part starting and ending at a control point in the transformed code.Type: GrantFiled: April 27, 2010Date of Patent: October 1, 2013Assignee: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, Mads Torgersen, Neal M. Gafter, Niklas Gustafsson
-
Publication number: 20130152061Abstract: An augmented parser can create an augmented parse tree that captures all the information in the source code as additional elements. Information included in the augmented parse tree can include whitespace, comments, pre-processor directives, line continuation characters, missing text, text errors, and original text. Thus, the augmented parse tree can be used to fully reconstruct the original source code, character for character, including spaces, comments, and incorrect code. The improved parser can store syntactic error information in the original source code in the parse tree. The augmented parse tree can be used to generate or modify source code. The parse tree created by the augmented parser can be used for incremental parsing to create a new augmented parse tree after a change.Type: ApplicationFiled: December 12, 2011Publication date: June 13, 2013Applicant: Microsoft CorporationInventors: Peter Golde, Matthew J. Warren, Neal M. Gafter, HeeJae Chang
-
Publication number: 20110265070Abstract: APIs are provided, that are external to a programming language but that provide functionality that can be plugged into a language compiler. The provided APIs tailor functionality associated with asynchronous programming, iterators or writing symmetric co-routines using a generalized pattern-based approach. Several types of resumable methods are provided in the APIs which can be applied to method bodies written in traditional program code. Syntactically distinguishable control points in method bodies written in traditional program code invoke transformation of the code by the compiler using the external APIs. The transformed code enables the pausing and resumption of the code sandwiched between control points in the transformed code. The source code contained within a method having control points in it is transformed so that code within the method can be executed in discrete parts, each part starting and ending at a control point in the transformed code.Type: ApplicationFiled: April 27, 2010Publication date: October 27, 2011Applicant: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, Mads Torgersen, Neal M. Gafter, Niklas Gustafsson
-
Publication number: 20110167248Abstract: Unsuspended co-routines are handled by the machine call stack mechanism in which the stack grows and shrinks as recursive calls are made and returned from. When a co-routine is suspended, however, additional call stack processing is performed. A suspension message is issued, and the entire resume-able part of the call stack is removed, and is copied to the heap. A frame that returns control to a driver method (a resumer) is copied to the call stack so that resumption of the co-routine does not recursively reactivate the whole call stack. Instead the resumer reactivates only the topmost or most current frame called the leaf frame. When a co-routine is suspended, it does not return to its caller, but instead returns to the resumer that has reactivated it.Type: ApplicationFiled: January 7, 2010Publication date: July 7, 2011Applicant: Microsoft CorporationInventors: Neal M. Gafter, Mads Torgersen, Henricus Johannes Maria Meijer, Niklas Gustafsson
-
Publication number: 20110167088Abstract: Efficient immutable syntax representation with parent pointers under incremental change is enabled by creating a data structure comprising at least one tree structure that allows both upward and downward references in the tree and a tree structure that is immutable (read-only), and allows parts of itself to be re-used in other data structures. The data structure described enables tools to search and target particular sub trees. The fragment of the tree representing the targeted sub tree is produced as it is used. The rest of the tree is not produced. The read-only tree retains relative information, allowing it to be reassembled and shared.Type: ApplicationFiled: January 7, 2010Publication date: July 7, 2011Applicant: Microsoft CorporationInventors: Matthew J. Warren, Avner Y. Aharoni, Mads Torgersen, Renaud Paquay, Neal M. Gafter, Jared Parsons, David N. Schach, Aleksey V. Tsingauz, Peter Golde, Kevin Pilch-Bisson, Karen Liu
-
Patent number: 7263687Abstract: One embodiment of the present invention provides a system that facilitates use of an object-oriented enumerated type within a computer program. During operation, the system receives source code for the computer program, wherein the source code contains a declaration for an enumerated type. This declaration specifies a fixed number of enumeration constants that comprise the enumerated type. Next, the system defines the enumerated type using a class defined within an object-oriented programming language, wherein the class includes a constant for each enumeration constant specified in the declaration. If the declaration additionally contains one or more method declarations, these methods are present on the defined class.Type: GrantFiled: September 9, 2002Date of Patent: August 28, 2007Assignee: Sun Microsystems, Inc.Inventors: Joshua J. Bloch, Neal M. Gafter
-
Patent number: 7080369Abstract: Improved techniques for reducing the size of compiler products are disclosed. The techniques facilitate reduction of size by providing differential schemes aimed at producing compiler related information in a compressed form. The compressed compiler related information include symbol names associated with symbols encountered in programming languages. The improved techniques yield improved compilation times and compiler products that utilize substantially less storage space (e.g., disk storage space).Type: GrantFiled: August 28, 2000Date of Patent: July 18, 2006Assignee: Sun Microsystems, Inc.Inventors: Lawrence A. Crowl, Neal M. Gafter
-
Patent number: 6718438Abstract: The present invention uses feedback to determine the size of an object cache. The size of the cache, (i.e., its budget), varies and is determined based on feedback from the persistent object system. Persistent objects are evicted from the cache if the storage for persistent objects exceeds the budget. If the storage is less than the budget then persistent objects in the heap are retained while new persistent objects are added to the cache.Type: GrantFiled: December 13, 2000Date of Patent: April 6, 2004Assignee: Sun Microsystems, Inc.Inventors: Brian T. Lewis, Bernd J. W. Mathiske, Neal M. Gafter, Michael J. Jordan
-
Publication number: 20040049764Abstract: One embodiment of the present invention provides a system that facilitates use of an object-oriented enumerated type within a computer program. During operation, the system receives source code for the computer program, wherein the source code contains a declaration for an enumerated type. This declaration specifies a fixed number of enumeration constants that comprise the enumerated type. Next, the system defines the enumerated type using a class defined within an object-oriented programming language, wherein the class includes a constant for each enumeration constant specified in the declaration. If the declaration additionally contains one or more method declarations, these methods are present on the defined class.Type: ApplicationFiled: September 9, 2002Publication date: March 11, 2004Inventors: Joshua J. Bloch, Neal M. Gafter
-
Publication number: 20020073283Abstract: The present invention uses feedback to determine the size of an object cache. The size of the cache, (i.e., its budget), varies and is determined based on feedback from the persistent object system. Persistent objects are evicted from the cache if the storage for persistent objects exceeds the budget. If the storage is less than the budget then persistent objects in the heap are retained while new persistent objects are added to the cache.Type: ApplicationFiled: December 13, 2000Publication date: June 13, 2002Inventors: Brian T. Lewis, Bernd J.W. Mathiske, Neal M. Gafter, Michael J. Jordan
-
Patent number: 5666296Abstract: The method comprises the steps of converting the algorithm into a control flow graph having a plurality of nodes, each node representing at least one of the plurality of statements. The control flow graph further includes a conditional branching node for the data-dependent conditional branching statement. Reverse dominators are then computed for each of the plurality of nodes, from which a meet point node for each conditional branching node is derived. The method further provides for constructing a shadow symbol table housing the variables, and constructing a duplicate shadow symbol table for each possible value of the datum in response to the conditional branching node. The conditional branching node is also evaluated by assuming each possible value of the datum for each branch and assigning symbolic values to each of the variables in the shadow symbol table. The nodes contained in each branch are evaluated until the meet point node is reached. The duplicate shadow symbol tables are then merged.Type: GrantFiled: December 31, 1991Date of Patent: September 9, 1997Assignee: Texas Instruments IncorporatedInventor: Neal M. Gafter
-
Patent number: 5650948Abstract: A method for symbolic evaluation of an algorithm is provided. The algorithm has at least one conditional branching statement dependent on the value of at least one input datum. The method comprises the steps of converting the algorithm into a control flow graph having a plurality of nodes, each node representing at least one of the plurality of statements. The control flow graph further includes a conditional branching node for the data-dependent conditional branching statement. Reverse dominators are then computed for each of the plurality of nodes, from which a meet point node for each conditional branching node is derived. The method further provides for constructing a shadow symbol table housing the variables, and constructing a duplicate shadow symbol table for each possible value of the datum in response the conditional branching node.Type: GrantFiled: June 7, 1995Date of Patent: July 22, 1997Assignee: Texas Instruments IncorporatedInventor: Neal M. Gafter