Patents by Inventor Joseph J. Pamer

Joseph J. Pamer 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: 9696974
    Abstract: The type environment of a program can be modeled as a graph. In the graph, a node can represent a code element including but not limited to a function, a class, an object, a variable, an expression, a script, a global, a primitive, a module, an interface, an enumerated list, an array, an alias for a type, a parameter, a property, a type, a method, a function expression, a call signature, an index signature, an object type, or a function type. An edge in the graph can represent a relationship between code elements. When the type of a code element changes, the graph can be changed to model the revised source code. Computations concerning effects of a type change are delayed until information concerning the affected code element is requested.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: July 4, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventor: Joseph J. Pamer
  • Patent number: 9652207
    Abstract: Static type checking can be performed on types and values defined in modules in a system that dynamically composes programs from modules. The types and values do not share a global namespace. Each module defines its own module universe, disjoint from other modules. A language mechanism can establish a local name binding to one module within the content of another module. When type checking at compile time an environment can be established that corresponds to a runtime instance of the program. The static type system can be arranged to align with the runtime values, such that the names used to refer to objects at runtime are the same as the names used to refer to the types of those objects in the static type system. Aliases of a particular type are resolved to a known compile time description of the type.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: May 16, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
  • Patent number: 9639335
    Abstract: Type inference is used to provide the benefits of static type checking without explicitly declaring type in the source code. Type inference that proceeds in a bottom up direction is augmented by contextual typing that proceeds in a top down direction. Contextual typing types enclosed expressions by associating the type of a directly enclosing expression with the enclosed expression. Object literals, function literals and array literals enclosed in assignment and call expressions, can be contextually typed.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: May 2, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
  • Patent number: 9563412
    Abstract: Statically extensible types allow a static type system to model the behavior of dynamic object model extension in dynamic runtime systems. Static types that model dynamically extended types can be extended using additional declarations in the same compilation. Declarations for a particular type can come from multiple independent sources which can have been defined at multiple points in time. Extension declarations can use the same syntax as the initial type declaration. Hence presence of one or more declarations for the same type in a compilation can indicate that the type has been extended. These features allow static type checking of dynamic plug-ins to be supported using statically extensible types. Declarations and extension declarations for a type can be merged together to create an extended type that enables different processing paths and dependencies.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: February 7, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
  • Publication number: 20140372993
    Abstract: A function in a type system can be overloaded using specified constants. The constant can be can be the result of evaluating an expression to: a string, a number, a Boolean, a pattern or any type of constant. The return type of the function can depend on the specified constant that is passed into the function. The return type of the function can depend on the type of the specified constant that is passed into the function. The type of the parameter that is passed into the function can depend on the value of the constant. The function overloads can be validated to ensure that the constant-based overload is a subtype of a more general overload. A constant can be an expression used at compile time during type checking.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Lucas J. Hoban, Jonathan D. Turner, Mads Torgersen, Charles P. Jazdzewski, Joseph J. Pamer, Steven E. Lucco, Anders Hejlsberg, Robert A. Paveza
  • Publication number: 20140282441
    Abstract: Static type checking can be performed on types and values defined in modules in a system that dynamically composes programs from modules. The types and values do not share a global namespace. Each module defines its own module universe, disjoint from other modules. A language mechanism can establish a local name binding to one module within the content of another module. When type checking at compile time an environment can be established that corresponds to a runtime instance of the program. The static type system can be arranged to align with the runtime values, such that the names used to refer to objects at runtime are the same as the names used to refer to the types of those objects in the static type system. Aliases of a particular type are resolved to a known compile time description of the type.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: Microsoft Corporation
    Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
  • Publication number: 20140282443
    Abstract: Type inference is used to provide the benefits of static type checking without explicitly declaring type in the source code. Type inference that proceeds in a bottom up direction is augmented by contextual typing that proceeds in a top down direction. Contextual typing types enclosed expressions by associating the type of a directly enclosing expression with the enclosed expression. Object literals, function literals and array literals enclosed in assignment and call expressions, can be contextually typed.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: Microsoft Corporation
    Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
  • Publication number: 20140282442
    Abstract: Statically extensible types allow a static type system to model the behavior of dynamic object model extension in dynamic runtime systems. Static types that model dynamically extended types can be extended using additional declarations in the same compilation. Declarations for a particular type can come from multiple independent sources which can have been defined at multiple points in time. Extension declarations can use the same syntax as the initial type declaration. Hence presence of one or more declarations for the same type in a compilation can indicate that the type has been extended. These features allow static type checking of dynamic plug-ins to be supported using statically extensible types. Declarations and extension declarations for a type can be merged together to create an extended type that enables different processing paths and dependencies.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: Microsoft Corporation
    Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
  • Publication number: 20140282384
    Abstract: The type environment of a program can be modeled as a graph. In the graph, a node can represent a code element including but not limited to a function, a class, an object, a variable, an expression, a script, a global, a primitive, a module, an interface, an enumerated list, an array, an alias for a type, a parameter, a property, a type, a method, a function expression, a call signature, an index signature, an object type, or a function type. An edge in the graph can represent a relationship between code elements. When the type of a code element changes, the graph can be changed to model the revised source code. Computations concerning effects of a type change are delayed until information concerning the affected code element is requested.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: Microsoft Corporation
    Inventor: Joseph J. Pamer