Patents by Inventor James J. Hugunin
James J. Hugunin 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: 9075667Abstract: A static type, called “dynamic”, is introduced into a statically bound programming language. An expression or subexpression that is defined as a static type called “dynamic” in the source code of a program written in the statically bound programming language, is bound based on its runtime type instead of on its compile time type. Binding can be performed based on a mixture of compile time and runtime types that are based on the specification of types of expressions in source code. This type of binding is called hybrid binding. Operations are bound using the runtime type of constituent expressions (i.e., the runtime type of a receiver, an argument, or an operand) typed as dynamic and the compile time type of static constituents. If any constituent expression of an operation is dynamic, binding occurs at runtime instead of at compile time.Type: GrantFiled: May 21, 2009Date of Patent: July 7, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Mads Torgersen, Anders Hejlsberg, James J. Hugunin, Matthew J. Warren, Neal Gafter, Lucian Jules Wischik, Robert Eric Lippert, Samuel Y. Ng, Christopher Joseph Burrows, Alex C. Turner
-
Patent number: 8499290Abstract: The present invention extends to methods, systems, and computer program products for creating text functions form a spreadsheet. Embodiments of the invention extract functions from spreadsheets and represent the functions in textual form. Representation in textual form promotes code reuse, clarify, expressive power, and better performance. Text can be rendered in virtually any programming language, such as, for example, C#, C++, Visual Basic (“VB”), etc. In some embodiments, programming language extensibility to support spreadsheet compatible data types and functions is utilized.Type: GrantFiled: June 15, 2010Date of Patent: July 30, 2013Assignee: Microsoft CorporationInventors: John Benjamin Messerly, James J. Hugunin, Jonathon Michael Stall, Curt Oliver Hagenlocher
-
Patent number: 8381195Abstract: The present invention extends to methods, systems, and computer program products for implementing parallel loops with serial semantics. Embodiments of the invention provide a semantic transforms and codegen patterns that provide more efficient parallel loop implementations with serial loop semantics. Embodiments of the invention support assignments within for-loop bodies, support break/return constructs within for-loop bodies, and run transformations to covert serial constructs to parallel constructs.Type: GrantFiled: June 17, 2010Date of Patent: February 19, 2013Assignee: Microsoft CorporationInventors: Jonathon Michael Stall, Curt Oliver Hagenlocher, John Benjamin Messerly, James J. Hugunin
-
Publication number: 20110314461Abstract: The present invention extends to methods, systems, and computer program products for implementing parallel loops with serial semantics. Embodiments of the invention provide a semantic transforms and codegen patterns that provide more efficient parallel loop implementations with serial loop semantics. Embodiments of the invention support assignments within for-loop bodies, support break/return constructs within for-loop bodies, and run transformations to covert serial constructs to parallel constructs.Type: ApplicationFiled: June 17, 2010Publication date: December 22, 2011Applicant: Microsoft CorporationInventors: Jonathon Michael Stall, Curt Oliver Hagenlocher, John Benjamin Messerly, James J. Hugunin
-
Publication number: 20110314365Abstract: The present invention extends to methods, systems, and computer program products for decompiling loops in a spreadsheet. Embodiments of the invention detect loops by walking a dependency graph on a spreadsheet. As nodes are encountered, sequences of the same formulas are looked for in a normalized representation of the spreadsheet (e.g., R1C1 notation). When the same formulas are identified, the formulas may represent a loop. The spatial structure of the cells is analyzed to determine which cells are to be stored in arrays and which cells can be loop carried dependencies.Type: ApplicationFiled: June 17, 2010Publication date: December 22, 2011Applicant: Microsoft CorporationInventors: John Benjamin Messerly, James J. Hugunin, Jonathon Michael Stall, Curt Oliver Hagenlocher
-
Publication number: 20110307874Abstract: The present invention extends to methods, systems, and computer program products for creating text functions form a spreadsheet. Embodiments of the invention extract functions from spreadsheets and represent the functions in textual form. Representation in textual form promotes code reuse, clarify, expressive power, and better performance. Text can be rendered in virtually any programming language, such as, for example, C#, C++, Visual Basic (“VB”), etc. In some embodiments, programming language extensibility to support spreadsheet compatible data types and functions is utilized.Type: ApplicationFiled: June 15, 2010Publication date: December 15, 2011Applicant: Microsoft CorporationInventors: John Benjamin Messerly, James J. Hugunin, Jonathon Michael Stall, Curt Oliver Hagenlocher
-
Publication number: 20100299660Abstract: A static type, called “dynamic”, is introduced into a statically bound programming language. An expression or subexpression that is defined as a static type called “dynamic” in the source code of a program written in the statically bound programming language, is bound based on its runtime type instead of on its compile time type. Binding can be performed based on a mixture of compile time and runtime types that are based on the specification of types of expressions in source code. This type of binding is called hybrid binding. Operations are bound using the runtime type of constituent expressions (i.e., the runtime type of a receiver, an argument, or an operand) typed as dynamic and the compile time type of static constituents. If any constituent expression of an operation is dynamic, binding occurs at runtime instead of at compile time.Type: ApplicationFiled: May 21, 2009Publication date: November 25, 2010Applicant: Microsoft CorporationInventors: Mads Torgersen, Anders Hejlsberg, James J. Hugunin, Matthew J. Warren, Neal Gafter, Lucian Jules Wischik, Robert Eric Lippert, Samuel Y. Ng, Christopher Joseph Burrows, Alex C. Turner
-
Publication number: 20090182689Abstract: A computer program may involve a dynamic operation, which may specify one of many types of methods based on the conditions of the invocation during runtime, such as the parameters provided to the dynamic operation. The appropriate performance of the dynamic method may be achieved by analyzing the conditions of the invocation according to an evaluation rule set, the rules comprising conditions and an action to be performed if the conditions are satisfied. The evaluation rule set may also be reconfigured upon identifying a satisfied rule to facilitate a faster evaluation of the dynamic operation during a second and subsequent invocations.Type: ApplicationFiled: January 15, 2008Publication date: July 16, 2009Applicant: MICROSOFT CORPORATIONInventors: William P. Chiles, Robert E. Viehland, James J. Hugunin, Martin Maly
-
Patent number: 6539390Abstract: A set of development tools is provided as part of an integrated development environment for supporting aspect-oriented programming such that aspects may easily be defined for embodying functionality which cross-cuts main program functionality in such a way that aspects transparently force their behavior on the main program. The editor and debugger of the integrated development environment embody functionality for accommodating this transparency.Type: GrantFiled: July 20, 1999Date of Patent: March 25, 2003Assignee: Xerox CorporationInventors: Gregor J. Kiczales, Erik A. Hilsdale, Cristina V. Lopes, John O. Lamping, James J. Hugunin
-
Patent number: 6467086Abstract: The concept of a general purpose aspect is introduced where an aspect transparently forces cross-cutting behavior on object classes and other software entities. A reusable aspect is further described for use as part of an aspect library.Type: GrantFiled: July 20, 1999Date of Patent: October 15, 2002Assignee: Xerox CorporationInventors: Gregor J. Kiczales, John O. Lamping, Cristina V. Lopes, James J. Hugunin, Erik A. Hilsdale, Chandrasekhar Boyapati