Dynamic lazy type system

US9081893B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9081893-B2
Application numberUS-201113163261-A
CountryUS
Kind codeB2
Filing dateJun 17, 2011
Priority dateFeb 18, 2011
Publication dateJul 14, 2015
Grant dateJul 14, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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.

Assignees

Inventors

Classifications

  • Type checking · CPC title

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • using formal methods, e.g. model checking, abstract interpretation (theorem proving G06N5/013) · CPC title

  • Program code verification, e.g. Java bytecode verification, proof-carrying code (high-level semantic checks G06F8/43; prevention of errors by analysis, debugging or testing of software G06F11/36) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9081893B2 cover?
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.
Who is the assignee on this patent?
Christensen Erik, Coulson Michael, Szyperski Clemens, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F11/3612. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 14 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).