Patents by Inventor Peter Hallam

Peter Hallam 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: 10474555
    Abstract: A code testing system identifies possible code errors that may generate unexpected application behaviors. The code testing system identifies function calls in the system by identifying function call sites that do not specify a receiver object but may invoke a function that uses a receiver object. To identify these call sites, the code testing system analyzes function operation to determine receiver functions that use a receiver object, and may exclude functions that use the receiver object in a pro forma way or that does not rely on or affect properties of the object. A callgraph is generated for the functions in the code to identify possible functions called from a call site. When a call site, based on the callgraph, may invoke a receiver function, the call site is analyzed to determine whether it specifies a receiver object for the called function and identifies an error when the call site does not specify a receiver object.
    Type: Grant
    Filed: March 3, 2017
    Date of Patent: November 12, 2019
    Assignee: Synopsys, Inc.
    Inventors: Peter Hallam, Brett van Swelm, Peter Dillinger
  • Publication number: 20170255543
    Abstract: A code testing system identifies possible code errors that may generate unexpected application behaviors. The code testing system identifies function calls in the system by identifying function call sites that do not specify a receiver object but may invoke a function that uses a receiver object. To identify these call sites, the code testing system analyzes function operation to determine receiver functions that use a receiver object, and may exclude functions that use the receiver object in a pro forma way or that does not rely on or affect properties of the object. A callgraph is generated for the functions in the code to identify possible functions called from a call site. When a call site, based on the callgraph, may invoke a receiver function, the call site is analyzed to determine whether it specifies a receiver object for the called function and identifies an error when the call site does not specify a receiver object.
    Type: Application
    Filed: March 3, 2017
    Publication date: September 7, 2017
    Inventors: Peter Hallam, Brett van Swelm, Peter Dillinger
  • Patent number: 8458678
    Abstract: A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
    Type: Grant
    Filed: June 16, 2011
    Date of Patent: June 4, 2013
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew Warren, Dinesh Chandrakant Kulkarni, Luca Bolognese, Peter A. Hallam, Gary Shon Katzenberger, Donald F. Box
  • Patent number: 8375443
    Abstract: A safe environment is established for running untrusted code in a system whose trusted libraries include native code. Annotations are applied to code in the system libraries to identify safe and unsafe code, and analysis tools reveal whether code outside the system libraries is able to trigger any unsafe behavior.
    Type: Grant
    Filed: September 27, 2011
    Date of Patent: February 12, 2013
    Assignee: Google Inc.
    Inventors: Charles Reis, Peter Hallam, Loren Kohnfelder
  • Patent number: 8370801
    Abstract: Architecture that extends existing types including constructed and sealed types using extension methods. Extension methods are static methods that can be invoked using instance method syntax. Extension methods are declared by specifying the keyword “this” as a modifier on the first parameter of the methods. Extension methods have all the capabilities of regular static methods. In addition, once imported, extension methods can be invoked using instance method syntax. Also disclosed are rules for importing extension methods, and extension method invocations. Extension methods are imported through using-namespace-directives. In addition to importing the types contained in a namespace, a using-namespace-directive imports all extension methods in all static classes in the namespace. In effect, imported extension methods appear as additional methods on the types that are given by their first parameter and have lower precedence than regular instance methods.
    Type: Grant
    Filed: March 22, 2010
    Date of Patent: February 5, 2013
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkarni
  • Patent number: 8275731
    Abstract: Anonymous types for a programming language. Non-denotable anonymous types are types that a compiler generates on behalf of a programmer and can then be used as nominal types. Insofar as anonymous types do not have a name, they can be used only inside a method in which they are created. Additionally, an anonymous type cannot be exposed in any way outside of the method. Syntax to create an anonymous type is useful when employed with a Select operator to generate a result with a particular shape, without the need of having a regular type for it. Anonymous types are expressible such that an expression of that type can be written. Translation of an anonymous type by a compiler generates a nominal class that implements Equals and GetHashCode methods. There is equivalence of anonymous types within the same method, and conversion of an unrealized structural type into structurally compatible nominal type.
    Type: Grant
    Filed: May 10, 2010
    Date of Patent: September 25, 2012
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkami
  • Patent number: 8060868
    Abstract: Providing for read/write access to captured free variables expressed as environment data objects is disclosed herein. By way of example, free variables can be rewritten as a field of a private class, and accessed via an instance of the private class captured within the environment data object. In such a manner, no need of a placeholder or proxy function is required to access the free variable. Consequently, the subject innovation provides a simplified method for capturing free variables within expression trees and providing read/write access to such variables.
    Type: Grant
    Filed: June 21, 2007
    Date of Patent: November 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Mads Torgersen, Peter A. Hallam, Matthew J. Warren, Dinesh C. Kulkarni, Clemens Alden Szyperski
  • Publication number: 20110246973
    Abstract: A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
    Type: Application
    Filed: June 16, 2011
    Publication date: October 6, 2011
    Applicant: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Dinesh Chandrakant Kulkarni, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Donald Box
  • Patent number: 7992140
    Abstract: A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
    Type: Grant
    Filed: July 29, 2005
    Date of Patent: August 2, 2011
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Dinesh Chandrakant Kulkarni, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Donald Box
  • Patent number: 7890939
    Abstract: Partial methods enable separation of method declaration and/or calls from method implementation. A partial method specifies a signature of a join or hook point in a class. Calls to a partial method specify a join or hook point in code that can optionally be linked with an actual method implementation of the same signature. Separate method implementations or other code related to a partial method are injected into a single program prior to execution. Unimplemented partial methods are treated as no operation instructions or otherwise ignored.
    Type: Grant
    Filed: February 13, 2007
    Date of Patent: February 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Dinesh C. Kulkarni, Mads Torgersen, Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Peter A. Hallam
  • Patent number: 7873592
    Abstract: Systems and methods facilitate type inference in a computer-programming environment. Type inference can be applied to generic method or function invocation in object-oriented languages to determine a type argument list left implicit by a programmer. One or more type arguments can be identified as a parameter type to which all other types in a set of associated parameter types can be converted.
    Type: Grant
    Filed: April 20, 2007
    Date of Patent: January 18, 2011
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Gavin Bierman, Mads Torgersen, Anders Hejlsberg, Danny Van Velzen, Peter A. Hallam, Robert Eric Lippert, Matthew J. Warren, Paul A. Vick, Amanda Silver
  • Patent number: 7818719
    Abstract: Syntax for creating object instances utilizing expressions instead of statements. A syntax component facilitates extension of conventional object-creation-expression syntax. An initializer component provides for initialization of a newly-created entity via object and collection initializers. The initializer component provides initialization of the newly-created entity utilizing an object initializer where the object initializer specifies values for one or more fields or properties of the newly-created entity which is an object, and consists of a sequence of member initializers enclosed by tokens and separated by commas. The initializer component can also provides initialization of the newly-created entity utilizing a collection initializer when the underlying object implements a certain interface or implements a certain pattern. An overloading constructor can be called as part of the initialization process.
    Type: Grant
    Filed: July 29, 2005
    Date of Patent: October 19, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkarni
  • Publication number: 20100217776
    Abstract: Anonymous types for a programming language. Non-denotable anonymous types are types that a compiler generates on behalf of a programmer and can then be used as nominal types. Insofar as anonymous types do not have a name, they can be used only inside a method in which they are created. Additionally, an anonymous type cannot be exposed in any way outside of the method. Syntax to create an anonymous type is useful when employed with a Select operator to generate a result with a particular shape, without the need of having a regular type for it. Anonymous types are expressible such that an expression of that type can be written. Translation of an anonymous type by a compiler generates a nominal class that implements Equals and GetHashCode methods. There is equivalence of anonymous types within the same method, and conversion of an unrealized structural type into structurally compatible nominal type.
    Type: Application
    Filed: May 10, 2010
    Publication date: August 26, 2010
    Applicant: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkarni
  • Publication number: 20100175048
    Abstract: Architecture that extends existing types including constructed and sealed types using extension methods. Extension methods are static methods that can be invoked using instance method syntax. Extension methods are declared by specifying the keyword “this” as a modifier on the first parameter of the methods. Extension methods have all the capabilities of regular static methods. In addition, once imported, extension methods can be invoked using instance method syntax. Also disclosed are rules for importing extension methods, and extension method invocations. Extension methods are imported through using-namespace-directives. In addition to importing the types contained in a namespace, a using-namespace-directive imports all extension methods in all static classes in the namespace. In effect, imported extension methods appear as additional methods on the types that are given by their first parameter and have lower precedence than regular instance methods.
    Type: Application
    Filed: March 22, 2010
    Publication date: July 8, 2010
    Applicant: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkarni
  • Patent number: 7743066
    Abstract: Anonymous types for a programming language. Non-denotable anonymous types are types that a compiler generates on behalf of a programmer and can then be used as nominal types. Insofar as anonymous types do not have a name, they can be used only inside a method in which they are created. Additionally, an anonymous type cannot be exposed in any way outside of the method. Syntax to create an anonymous type is useful when employed with a Select operator to generate a result with a particular shape, without the need of having a regular type for it. Anonymous types are expressible such that an expression of that type can be written. Translation of an anonymous type by a compiler generates a nominal class that implements Equals and GetHashCode methods. There is equivalence of anonymous types within the same method, and conversion of an unrealized structural type into structurally compatible nominal type.
    Type: Grant
    Filed: July 29, 2005
    Date of Patent: June 22, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkarni
  • Patent number: 7716644
    Abstract: A system and method facilitating attributed debugging is provided that facilitates a developer of an object to determine what information a debugger displays. An expression evaluator is provided. The system can further include, optionally, a debuggee (e.g., process to be debugged). The debuggee includes attribute(s) which are employed by the debugger to facilitate debugging of the application—“attributed debugging.” This allows a developer of a type to declaratively indicate how information is to be displayed during debugging. Attributed debugging thus allows the manipulation of the view of data in the debugger by allowing the type author annotations with which they can control.
    Type: Grant
    Filed: March 25, 2004
    Date of Patent: May 11, 2010
    Assignee: Microsoft Corporation
    Inventors: Anson Horton, Michael Montwill, Peter A. Hallam, Christopher S. George, Gang Peng
  • Patent number: 7702686
    Abstract: Systems and methods that enable consistent navigation (for a database and memory environment) in object relational mapping. This typically ensures fidelity of object graph via restrictions on collections of persistent objects (e.g., entity sets, entity refs . . . ). Moreover, a tracking component can detect changes as they occur, and only a copy of the objects that have changed can be created, to optimize operation.
    Type: Grant
    Filed: July 29, 2005
    Date of Patent: April 20, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Dinesh Chandrakant Kulkarni, Luca Bolognese, Matthew J. Warren, Peter A. Hallam
  • Patent number: 7694274
    Abstract: A program execution engine that facilitates generic type variance verification is provided. The execution engine receives a program executable in the form of intermediate language (IL). The program executable can be based on code that includes expression(s) with generic type(s) which have been identified as requiring variance verification (e.g., covariance and/or contra-variance). The execution engine includes a variance verification component that dynamically determines whether value(s) associated with the generic type(s) identified as requiring variance verification comply with the particular variance verification requirement. The variance verification component can provide error information (e.g., throw an exception), if the specified variance is not safely compliant. Variance verification can be based on static checking which places the burden on a source language compiler to emit the run-time checks in intermediate language (IL), if run-time checked variance is required.
    Type: Grant
    Filed: July 29, 2005
    Date of Patent: April 6, 2010
    Assignee: Microsoft Corporation
    Inventors: Erik Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger
  • Patent number: 7685567
    Abstract: Architecture that extends existing types including constructed and sealed types using extension methods. Extension methods are static methods that can be invoked using instance method syntax. Extension methods are declared by specifying the keyword “this” as a modifier on the first parameter of the methods. Extension methods have all the capabilities of regular static methods. In addition, once imported, extension methods can be invoked using instance method syntax. Also disclosed are rules for importing extension methods, and extension method invocations. Extension methods are imported through using-namespace-directives. In addition to importing the types contained in a namespace, a using-namespace-directive imports all extension methods in all static classes in the namespace. In effect, imported extension methods appear as additional methods on the types that are given by their first parameter and have lower precedence than regular instance methods.
    Type: Grant
    Filed: July 29, 2005
    Date of Patent: March 23, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Anders Hejlsberg, Matthew J. Warren, Luca Bolognese, Peter A. Hallam, Gary S. Katzenberger, Dinesh C. Kulkarni
  • Patent number: 7647580
    Abstract: The subject invention relates to systems and methods that provide null capabilities within the context of programming languages. In one aspect, a system is provided that facilitates null-support in various programming languages. The system includes one or more types associated with at least one programming language. A type modifier is provided to signal that the type is nullable. The type modifier enables a multi-element structure to be automatically created in association with the type wherein, the multi-element structure includes the type and a Boolean element indicating whether or not the variable is null.
    Type: Grant
    Filed: September 7, 2004
    Date of Patent: January 12, 2010
    Assignee: Microsoft Corporation
    Inventors: Henriçus Johannes Maria Meijer, Anders Hejlsberg, Eric A. Gunnerson, Gary S. Katzenberger, Peter A. Hallam, Matthew J. Warren