Patents by Inventor Lucas J. Hoban
Lucas J. Hoban 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: 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: 9424008Abstract: API description techniques are described for consumption by dynamically-typed languages. In one or more implementations, machine-readable data is parsed to locate descriptions of one or more application programming interfaces (APIs). The descriptions of the one or more application programming interfaces are projected into an alternate form that is different than a form of the machine-readable data.Type: GrantFiled: March 20, 2015Date of Patent: August 23, 2016Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventors: Michael C. Fanning, Ani Babaian, Jomo A. Fisher, Anson M. Horton, Lucas J. Hoban
-
Publication number: 20150193214Abstract: API description techniques are described for consumption by dynamically-typed languages. In one or more implementations, machine-readable data is parsed to locate descriptions of one or more application programming interfaces (APIs). The descriptions of the one or more application programming interfaces are projected into an alternate form that is different than a form of the machine-readable data.Type: ApplicationFiled: March 20, 2015Publication date: July 9, 2015Inventors: Michael C. Fanning, Ani Babaian, Jomo A. Fisher, Anson M. Horton, Lucas J. Hoban
-
Patent number: 8997069Abstract: API description techniques are described for consumption by dynamically-typed languages. In one or more implementations, machine-readable data is parsed to locate descriptions of one or more application programming interfaces (APIs). The descriptions of the one or more application programming interfaces are projected into an alternate form that is different than a form of the machine-readable data.Type: GrantFiled: April 13, 2011Date of Patent: March 31, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Michael C. Fanning, Ani Babaian, Jomo A. Fisher, Anson M. Horton, Lucas J. Hoban
-
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
-
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
-
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
-
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
-
Patent number: 8826306Abstract: Systems and methods are described for passing a data item to and obtaining the data item from a scripting environment hosted by a host environment, wherein each environment uses a different representation of the data item. The host environment passes the data item to the scripting environment by passing a host environment representation of the data item that is hidden from developers of scripts to be executed by the scripting environment. This enables the original host environment representation of the data item to be preserved even after the data item has been passed to and from the scripting environment in the case where the scripting environment does not modify the data item, and also facilitates lazy conversion of the data item or avoidance of conversion entirely in the case where the scripting environment does not modify the data item.Type: GrantFiled: September 8, 2011Date of Patent: September 2, 2014Assignee: Microsoft CorporationInventors: Lucas J. Hoban, Caroline G. Murdoch, Gaurav Seth, Hitesh Kanwathirtha
-
Publication number: 20130067433Abstract: Systems and methods are described for passing a data item to and obtaining the data item from a scripting environment hosted by a host environment, wherein each environment uses a different representation of the data item. The host environment passes the data item to the scripting environment by passing a host environment representation of the data item that is hidden from developers of scripts to be executed by the scripting environment. This enables the original host environment representation of the data item to be preserved even after the data item has been passed to and from the scripting environment in the case where the scripting environment does not modify the data item, and also facilitates lazy conversion of the data item or avoidance of conversion entirely in the case where the scripting environment does not modify the data item.Type: ApplicationFiled: September 8, 2011Publication date: March 14, 2013Applicant: MICROSOFT CORPORATIONInventors: Lucas J. Hoban, Caroline G. Murdoch, Gaurav Seth, Hitesh Kanwathirtha
-
Publication number: 20130007702Abstract: 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: ApplicationFiled: June 30, 2011Publication date: January 3, 2013Applicant: Microsoft CorporationInventors: Lucas J. Hoban, Mark B. Shields, Steven E. Lucco, Charles P. Jazdzewski, Anders Hejlsberg
-
Publication number: 20120266141Abstract: API description techniques are described for consumption by dynamically-typed languages. In one or more implementations, machine-readable data is parsed to locate descriptions of one or more application programming interfaces (APIs). The descriptions of the one or more application programming interfaces are projected into an alternate form that is different than a form of the machine-readable data.Type: ApplicationFiled: April 13, 2011Publication date: October 18, 2012Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Ani Babaian, Jomo A. Fisher, Anson M. Horton, Lucas J. Hoban
-
Publication number: 20110276950Abstract: Architecture that provides a way to plug into a compiler (e.g., F#) and the associated language service. The language components define a standard plug-in mechanism that allows any component to plug into the services and, provide name binding and type resolution services. The compiler and language service utilize the protocol defined (e.g., in the shape of interfaces and classes that must be implemented in order to plug-in to the system) to provide compile time and design time extensions. The architecture provides the ability to define a customized protocol to interact with the compiler's name binding mechanism. The use of this protocol allows not only compilation to succeed, but to also provide rich IDE services, such as name lookup, and value lookup for quick information. Additionally, the capability to provide static type information to satisfy the requirements of a typed programming language is supported.Type: ApplicationFiled: May 5, 2010Publication date: November 10, 2011Applicant: Microsoft CorporationInventors: Jomo A. Fisher, Donald Syme, Lucas J. Hoban, Timothy Yat Tim Ng
-
Patent number: 7657873Abstract: The present invention provides an extensible mechanism for displaying object data in a debug environment in a suitable display format. In one aspect, a system is provided for computerized debug environments. The system includes a display component that presents data at a debug interface, wherein the data is associated with a first representation in a debug object and as at least a second representation at the debug interface. A communications component transmits the data from the debug object to the display component and also transforms the data from the first representation to the second representation.Type: GrantFiled: April 29, 2004Date of Patent: February 2, 2010Assignee: Microsoft CorporationInventors: Anson Horton, Michael Montwill, Lucas J. Hoban