IP Library Granted Patent US 9,081,893
Granted Patent B2
US 9,081,893 · App. 13/163,261 · Granted Jul 14, 2015

Dynamic lazy type system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,081,893
App. No.
13/163,261
Granted
Jul 14, 2015
Kind
B2
Abstract

A dynamic, lazy type system is provided for a dynamic, lazy programming language. Consequently, programs can benefit from runtime flexibility and lightweight notation in combination with benefits afforded by a substantial type system.

Claims (30)

1. A method, comprising:

employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts;

identifying one or more types associated with an expression of a computer-executable program at runtime just prior to evaluation of the expression, wherein evaluation of the expression is deferred until a result of the expression is required;

determining that at least a portion of the program can be executed by a remote execution engine as a function of an identified type; and

translating at least a portion of the program to a target programming language for remote execution.

2. The method of claim 1 , further comprising evaluating one or more constraints specified by a type and returning a type error if at least one of the one or more constraints is unsatisfied.

3. The method of claim 2 , further comprising evaluating the one or more constraints over a base category.

4. The method of claim 1 , further comprising dynamically generating one or more types at runtime.

5. The method of claim 1 , further comprising predicting a result type of a function based on one or more function argument types.

6. The method of claim 1 , further comprising identifying a brand that specifies a constraint on a type.

7. A system, comprising:

a processor coupled to a memory, the processor configured to execute the following computer-executable components stored in the memory;

a first component configured to assign a type to an expression in a computer-executable program at runtime just prior to evaluation of the expression, wherein evaluation is deferred until a result of the expression is required; and

a set-based type system having a plurality of base categories, wherein a type corresponds to constraints with respect to a particular base category, the base categories include number, text, record, and list, and wherein type enforcement is performed lazily.

8. The system of claim 7 , further comprising a second component configured to analyze the program for errors as a function of the type during program execution.

9. The system of claim 7 , wherein the type specifies a constraint over a base category.

10. The system of claim 7 , wherein the type is represented as a value.

11. The system of claim 7 , wherein the type includes one or more operator definitions.

12. The system of claim 7 , wherein the type includes a brand that specifies a constraint on the type.

13. The system of claim 7 , wherein the type is a cross-category union type.

14. The system of claim 7 , wherein the type is derived from a number category that represents real numbers.

15. The system of claim 7 , wherein the first component is configured to assign a function result type based on function argument types.

16. A computer-readable storage medium having instructions stored thereon that enables at least one processor to perform a method upon execution of the instructions, the method comprising:

inferring one or more types associated with an expression of a computer program dynamically at runtime just prior to evaluation of the expression, wherein the evaluation is deferred until a result of the expression is required;

analyzing the program for errors as a function of the one or more types; and

acquiring one or more types from an external data source.

17. The computer-readable storage medium of claim 16 , wherein an inferred type specifies a constraint over a base category.

18. The computer-readable storage medium of claim 16 , wherein an inferred type is a cross-category union type.

19. The computer-readable storage medium of claim 16 , wherein an inferred type is derived from a number category that represents real numbers.

20. The computer-readable storage medium of claim 16 , wherein the inferring step infers a predicted result type of a function based on actual argument types, as opposed to declared parameter types.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →