Patents by Inventor Charles P. Jazdzewski

Charles P. Jazdzewski 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: 9715382
    Abstract: Structure of a prototype-based programming language program is determined based on results of program execution. The structure determined can be implied by a program rather than explicitly declared. For example, classes and namespaces of a prototype-based program can be detected or inferred by identifying patterns that indicate the presence of a class or namespace. Furthermore, members of classes and namespaces can also be determined.
    Type: Grant
    Filed: June 25, 2013
    Date of Patent: July 25, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jordan L Matthiesen, Mohamed Hegazy, Charles P Jazdzewski
  • 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
  • Patent number: 9047407
    Abstract: The execution of a dynamic code segment sequence that includes at least two code segments in sequence. The first code segment is first executed and the corresponding state of the environment is captured. The second code segment is then executed. When the second code segment is later re-executed, the first code segment is not re-executed again. Rather, the environmental state is set to be the captured state that existed when the first code segment originally executed. Then, the second code segment may be executed without spending the resources required to re-run the first code segment. This may be employed at authoring time, or after deployment time.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: June 2, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Patent number: 9047100
    Abstract: The transformation of an abstract syntax tree of a dynamic language program at evaluation time in a manner that is helpful for evaluating the program. For instance, the abstract syntax tree may be altered such that metadata is attached to variables generated during execution. The tree might also be altered to force code to execute faster or more likely than would occur otherwise. This might occur so that the dynamic language program might be executed at authoring time up to a halt point that represents a point of interest to the author. Without transformation of the abstract syntax tree, the execution might have not proceeded to the halt point or might have taken a long time. Once at the halt point, the program state at the halt point may be evaluated, allowing the program to perform functions such as generating an available symbol set at the halt point.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: June 2, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Patent number: 9032378
    Abstract: The facilitated computation of an available symbol set at code locations in a dynamic language program, in which the program is executed up to a particular halt point for which an available symbol set is to be generated. At the halt point, a type of a value of a particular variable may be used in order to generate the available symbol set. However, at the halt point, the variable does not yet have a value of a useful type (e.g., null or undefined), which is possible in a dynamic language program. Rather than return an error, the principles described herein result in return of an available symbol set anyway. Specifically, the variable had previously been annotated with information representing accessed type information for the variable, even though the variable has not formally been defined. This annotated information may be used to generate the available symbol set.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: May 12, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Patent number: 8978007
    Abstract: A dynamic programming environment includes a dynamic runtime infrastructure configured to receive static metadata as source text in a source code written in a dynamic programming language. The dynamic runtime infrastructure determines an object representation based on the static metadata from the source text in the source code.
    Type: Grant
    Filed: June 30, 2011
    Date of Patent: March 10, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Lucas J. Hoban, Mark B. Shields, Steven E. Lucco, Charles P. Jazdzewski, Anders Hejlsberg
  • Patent number: 8959489
    Abstract: The present invention provides technologies for forming an editing interface for editing arbitrary objects. In particular, the present invention provides system and methods for enumerating object properties, selecting a suitable pre-existing object editor and, if no such pre-existing editor is available, constructing an object editor on the fly suitable for editing the properties of the object where the object may include properties and/or collections of objects. Construction of a suitable editor is based on enumeration of object properties and on the serialization of the object using a descriptive language such as extensible markup language (“XML”) or the like. Property values specified by a user via the object interface and editors are stored in a descriptive format such as XML and generally specify the initial characteristics of the object.
    Type: Grant
    Filed: April 16, 2007
    Date of Patent: February 17, 2015
    Assignee: Microsoft Corporation
    Inventors: Alan J. Gasperini, James S. Nakashima, Juraj Hlavac, Gary K. Linscott, Charles P. Jazdzewski, Jeffrey W. Kelly, Unnikrishnan Ravindranathan, Brian K. Pepin, Mark A. Boulter
  • Publication number: 20140380276
    Abstract: Structure of a prototype-based programming language program is determined based on results of program execution. The structure determined can be implied by a program rather than explicitly declared. For example, classes and namespaces of a prototype-based program can be detected or inferred by identifying patterns that indicate the presence of a class or namespace. Furthermore, members of classes and namespaces can also be determined.
    Type: Application
    Filed: June 25, 2013
    Publication date: December 25, 2014
    Inventors: Jordan L. Matthiesen, Mohamed Hegazy, Charles P. Jazdzewski
  • 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
  • Patent number: 8869106
    Abstract: A language service provider framework that generates an application context of a dynamic language program being authored. The application context includes a description of the dynamic language application being authored, one or more specific locations within the program, and runtime environment information. A language service provider port component holds one or more language service providers. Each language service provider may receive the application context and generate a set of available symbols corresponding to each of at least one of the identified one or more specific locations. A management component receives the application context from the application context generation component, provides the application context the language service provider, and correspondingly receives the available symbol set from the language service provider.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
  • 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: 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: 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
  • Patent number: 8661332
    Abstract: Modular content framework and document format methods and systems are described. The described framework and format define a set of building blocks for composing, packaging, distributing, and rendering document-centered content. These building blocks define a platform-independent framework for document formats that enable software and hardware systems to generate, exchange, and display documents reliably and consistently. The framework and format have been designed in a flexible and extensible fashion. In addition to this general framework and format, a particular format, known as the reach package format, is defined using the general framework. The reach package format is a format for storing paginated documents. The contents of a reach package can be displayed or printed with full fidelity among devices and applications in a wide range of environments and across a wide range of scenarios.
    Type: Grant
    Filed: April 30, 2004
    Date of Patent: February 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Jerry Dunietz, Charles P. Jazdzewski, David Ornstein, Rob Relyea, Oliver H. Foehr, Michael J. Hillberg, Joseph D. Ternasky, Robert A. Little, Christopher L. Anderson
  • Publication number: 20130159978
    Abstract: The execution of a dynamic code segment sequence that includes at least two code segments in sequence. The first code segment is first executed and the corresponding state of the environment is captured. The second code segment is then executed. When the second code segment is later re-executed, the first code segment is not re-executed again. Rather, the environmental state is set to be the captured state that existed when the first code segment originally executed. Then, the second code segment may be executed without spending the resources required to re-run the first code segment. This may be employed at authoring time, or after deployment time.
    Type: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Publication number: 20130159968
    Abstract: A language service provider framework that generates an application context of a dynamic language program being authored. The application context includes a description of the dynamic language application being authored, one or more specific locations within the program, and runtime environment information. A language service provider port component holds one or more language service providers. Each language service provider may receive the application context and generate a set of available symbols corresponding to each of at least one of the identified one or more specific locations. A management component receives the application context from the application context generation component, provides the application context the language service provider, and correspondingly receives the available symbol set from the language service provider.
    Type: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
  • Publication number: 20130159967
    Abstract: The facilitated computation of an available symbol set at code locations in a dynamic language program, in which the program is executed up to a particular halt point for which an available symbol set is to be generated. At the halt point, a type of a value of a particular variable may be used in order to generate the available symbol set. However, at the halt point, the variable does not yet have a value of a useful type (e.g., null or undefined), which is possible in a dynamic language program. Rather than return an error, the principles described herein returns an arbitrary symbol set anyway. Specifically, the variable had previously been annotated with information represented accessed type information for the variable, even though the variable has not formally been defined. This annotated information may be used to generate the available symbol set.
    Type: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Publication number: 20130159976
    Abstract: The transformation of an abstract syntax tree of a dynamic language program at evaluation time in a manner that is helpful for evaluating the program. For instance, the abstract syntax tree may be altered such that metadata is attached to variables generated during execution. The tree might also be altered to force code to execute faster or more likely than would occur otherwise. This might occur so that the dynamic language program might be executed at authoring time up to a halt point that represents a point of interest to the author. Without transformation of the abstract syntax tree, the execution might have not proceeded to the halt point or might have taken a long time. Once at the halt point, the program state at the halt point may be evaluated, allowing the program to perform functions such as generating an available symbol set at the halt point.
    Type: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning