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: 9715382Abstract: 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: GrantFiled: June 25, 2013Date of Patent: July 25, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Jordan L Matthiesen, Mohamed Hegazy, Charles P Jazdzewski
-
Patent number: 9652207Abstract: 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: GrantFiled: March 13, 2013Date of Patent: May 16, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
-
Patent number: 9639335Abstract: 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: GrantFiled: March 13, 2013Date of Patent: May 2, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
-
Patent number: 9563412Abstract: 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: GrantFiled: March 13, 2013Date of Patent: February 7, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
-
Patent number: 9047407Abstract: 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: GrantFiled: December 16, 2011Date of Patent: June 2, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Patent number: 9047100Abstract: 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: GrantFiled: December 16, 2011Date of Patent: June 2, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Patent number: 9032378Abstract: 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: GrantFiled: December 16, 2011Date of Patent: May 12, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Patent number: 8978007Abstract: 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: GrantFiled: June 30, 2011Date of Patent: March 10, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Lucas J. Hoban, Mark B. Shields, Steven E. Lucco, Charles P. Jazdzewski, Anders Hejlsberg
-
Patent number: 8959489Abstract: 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: GrantFiled: April 16, 2007Date of Patent: February 17, 2015Assignee: Microsoft CorporationInventors: 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: 20140380276Abstract: 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: ApplicationFiled: June 25, 2013Publication date: December 25, 2014Inventors: Jordan L. Matthiesen, Mohamed Hegazy, Charles P. Jazdzewski
-
Publication number: 20140372993Abstract: 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: ApplicationFiled: June 14, 2013Publication date: December 18, 2014Inventors: Lucas J. Hoban, Jonathan D. Turner, Mads Torgersen, Charles P. Jazdzewski, Joseph J. Pamer, Steven E. Lucco, Anders Hejlsberg, Robert A. Paveza
-
Patent number: 8869106Abstract: 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: GrantFiled: December 16, 2011Date of Patent: October 21, 2014Assignee: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
-
Publication number: 20140282442Abstract: 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: ApplicationFiled: March 13, 2013Publication date: September 18, 2014Applicant: Microsoft CorporationInventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
-
Publication number: 20140282443Abstract: 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: ApplicationFiled: March 13, 2013Publication date: September 18, 2014Applicant: Microsoft CorporationInventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
-
Publication number: 20140282441Abstract: 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: ApplicationFiled: March 13, 2013Publication date: September 18, 2014Applicant: Microsoft CorporationInventors: Lucas J. Hoban, Mads Torgersen, Charles P. Jazdzewski, Anders Hejlsberg, Steven E. Lucco, Joseph J. Pamer
-
Patent number: 8661332Abstract: 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: GrantFiled: April 30, 2004Date of Patent: February 25, 2014Assignee: Microsoft CorporationInventors: 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: 20130159978Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Publication number: 20130159968Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: MICROSOFT CORPORATIONInventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
-
Publication number: 20130159967Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Publication number: 20130159976Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning