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: 10474555Abstract: 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: GrantFiled: March 3, 2017Date of Patent: November 12, 2019Assignee: Synopsys, Inc.Inventors: Peter Hallam, Brett van Swelm, Peter Dillinger
-
Publication number: 20170255543Abstract: 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: ApplicationFiled: March 3, 2017Publication date: September 7, 2017Inventors: Peter Hallam, Brett van Swelm, Peter Dillinger
-
Patent number: 8375443Abstract: 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: GrantFiled: September 27, 2011Date of Patent: February 12, 2013Assignee: Google Inc.Inventors: Charles Reis, Peter Hallam, Loren Kohnfelder
-
Publication number: 20070044083Abstract: The subject disclosure pertains to lambda expressions and the employment of such expressions in imperative and/or object-oriented computer programming languages. Lambda expressions can be employed in conjunction with methods (e.g., arguments, assignment . . . ) to provide a more concise and functional manner of code specification. Further, lambda expressions can participate in type inference and checking as well as overload resolution, among other things.Type: ApplicationFiled: July 29, 2005Publication date: February 22, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Donald Box, Matthew Warren, Luca Bolognese, Gary Katzenberger, Peter Hallam, Dinesh Kulkarni
-
Publication number: 20070028222Abstract: This disclosure concerns various manners and mechanisms to capture and interact with free/outer variables or parameters. The capture of such variables, among other things, enables the code to become mobile to facilitate transmission to and execution by various systems or sub-systems. Transmission can be accomplished, for instance, by generation of code objects or data packets that include substituted values of the free variables and/or references to the location of the values.Type: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger, Dinesh Kulkarni
-
Publication number: 20070027849Abstract: A general-purpose programming language having language extensions for strongly typed, compile-time checked query and set operations that can be applied to arbitrary data structures, be they object-relational (O-R) mappings or just regular objects. As is appropriate for a general purpose programming language, the extensions do not mandate a particular object-relational layer; rather, they are introduced as abstractions that can be implemented in multiple environments. Accordingly, there is provided a system that facilitates data querying in accordance with an innovative aspect. The system include a program component that provides embedded query and set operations in a programming language, and an application component that facilitates application of the query and set operations over a data structure of data. The data can be any kind of data such as that found in a database, a document (e.g., XML), and data sources in a programming language (e.g., C#), for example.Type: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger, Dinesh Kulkarni
-
Publication number: 20070027862Abstract: 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: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger, Dinesh Kulkarni
-
Publication number: 20070027906Abstract: 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: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Dinesh Kulkarni, Luca Bolognese, Matthew Warren, Peter Hallam
-
Publication number: 20070028209Abstract: 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: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger, Dinesh Kulkarni
-
Publication number: 20070028210Abstract: 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: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Erik Meijer, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger
-
Publication number: 20070027907Abstract: The subject disclosure pertains to code generation patterns for use in object relational mapping. The code patterns may be used to manage bidirectional relationships and ensure consistency. The code patterns may support on-demand or deferred loading of relational data. Change detection and tracking are also provided. In addition, a default member modifier allows developers to override tool generated source code without directly modifying the generated source code.Type: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Dinesh Kulkarni, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Henricus Meijer, Peter Hallam
-
Publication number: 20070028223Abstract: 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: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Johannes Meijer, Anders Hejlsberg, Matthew Warren, Dinesh Kulkarni, Luca Bolognese, Peter Hallam, Gary Katzenberger, Donald Box
-
Publication number: 20070027905Abstract: A system for converting a query from a representation in a first computing language to an equivalent query in a representation in a second computing language that is different from the first computing language, comprises a query module that accepts a query in an object-oriented representation for translation to an equivalent query in a target query language. The system also includes a translation module that uses the object-oriented representation of the query to create a first version of the query in an idealized version of a target query language and uses the first version of the query to create a second version of the query in an implemented version of the target query language. Methods of using the system are also provided.Type: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Matthew Warren, Anders Hejlsberg, Luca Bolognese, Dinesh Kulkarni, Henricus Meijer, Peter Hallam, Jomo Fisher
-
Publication number: 20070028212Abstract: 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: ApplicationFiled: July 29, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger, Dinesh Kulkarni
-
Publication number: 20060053138Abstract: The subject disclosure pertains to systems and methods for supporting null capabilities for general purpose programming languages. Low level, runtime support for a nullable type is provided to ensure consistency and coherency. An execution component restricts support of the nullable type to programming language types that lack a null capability. The execution component may also provide support for conversion between the nullable type and a reference type.Type: ApplicationFiled: August 29, 2005Publication date: March 9, 2006Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejisberg, Dinesh Kulkarni, Vance Morrison, John Duffy, Christopher Brumme, Matthew Warren, Luca Bolognese, Peter Hallam, Gary Katzenberger
-
Publication number: 20060053131Abstract: 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: ApplicationFiled: September 7, 2004Publication date: March 9, 2006Applicant: Microsoft CorporationInventors: Henricus Meijer, Anders Hejlsberg, Eric Gunnerson, Gary Katzenberger, Peter Hallam, Matthew Warren
-
Publication number: 20060048095Abstract: The present invention discloses an improved system and method for specifying and compiling computer programs. Type aliases are introduced whose binding is inferred by a type inference component during compilation. Once declared, type aliases can be utilized just like regular types thereby providing added efficiency in coding, among other things. Additionally, a mechanism for specifying the introduction of a new variable whose type is to be inferred is disclosed. This mechanism clears up an ambiguity during type inference concerning whether to infer a new variable type or utilize a variable in scope. Further yet, an efficient type inference system and method is disclosed to effectively deal with overloading among other things.Type: ApplicationFiled: August 31, 2004Publication date: March 2, 2006Applicant: Microsoft CorporationInventors: Henricus Meijer, Eric Gunnerson, Peter Hallam, Anders Hejlsberg, Gary Katzenberger, Matthew Warren
-
Publication number: 20050216892Abstract: A system and method facilitating attributed debugging is provided. The system and method of the present invention facilitate a developer of an object to determine what information a debugger displays. An attributed debugging system having a debugger with 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”. The system can facilitate 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: ApplicationFiled: March 25, 2004Publication date: September 29, 2005Inventors: Anson Horton, Michael Montwill, Peter Hallam, Christopher George, Gang Peng
-
Publication number: 20050034109Abstract: A system and method of providing edit and continue support in a software program debugging environment. “Edit and continue” support allows a user (e.g., programmer and/or developer) to update the code and/or data structure(s) of an executing program while it is running. After the user has finished editing their code and resumes execution, an integrated development environment (IDE) propagates the edit(s) into a common language runtime (CLR) environment before continuing. Therefore, from the CLR environment's perspective, an edit is a block of intermediate language code (IL) and/or metadata that is inserted into a running process. The IDE can facilitate: determining “legality” of an edit; building the edit; sending the edit to the CLR environment; and/or, facilitating the CLR environment switch execution to the edited code.Type: ApplicationFiled: July 21, 2004Publication date: February 10, 2005Applicant: Microsoft CorporationInventors: Jennifer Hamilton, Michael Magruder, James Hogg, William Evans, Vance Morrison, Lawrence Sullivan, Sean Trowbridge, Jason Zander, Ian Carmichael, Patrick Dussud, John Hamby, John Rivard, Li Zhang, Mario Chenier, Douglas Rosen, Steven Steiner, Peter Hallam, Brian Crawford, James Miller, Sam Spencer, Habib Heydarian
-
Patent number: 4773145Abstract: A method of constructing a rotor assembly (12) for a rotary regenerative heat exchanger wherein the rotor compartment (14) is formed of a plurality of prefabricated, shop-assembled subcompartments (20) which are shipped disassembled from the central rotor post (16) for final erection in the field. The method of the present invention maximizes shop welding in the horizontal downhand position and minimizes welding in the vertical up position both in the shop and in the field.Type: GrantFiled: September 9, 1983Date of Patent: September 27, 1988Assignee: The Air Preheater Company, Inc.Inventors: Roderick J. Baker, James A. Groves, Peter Hallam, John E. Irving