Declarative programming model with a native programming language

US9600250B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9600250-B2
Application numberUS-90070810-A
CountryUS
Kind codeB2
Filing dateOct 8, 2010
Priority dateOct 8, 2010
Publication dateMar 21, 2017
Grant dateMar 21, 2017

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.

An execution environment in a computer system supports a declarative programming model where user code is written with a query syntax in a native programming language to express inherent parallelism in terms of data flow. The execution environment translates queries in the user code into a runtime agnostic representation and dynamically selects an execution runtime for executing the runtime agnostic representation.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer readable storage medium, which does not include transitory propagating signals, storing computer-executable instructions that, when executed by a computer system, cause the computer system to perform a method comprising: identifying a query syntax in user code written in a native programming language; translating the query syntax into a runtime agnostic representation of the user code that expresses tasks and the interactions of tasks without explicit reference to programming features or constructs of any particular execution runtime; dynamically selecting an execution runtime from at least two execution runtimes for executing the runtime agnostic representation that is executable with the dynamically selected execution runtime; and delineating a programming model for the user code from the at least two execution runtimes to permit the user code to target different execution runtimes of the at least two execution runtimes. 2. The computer readable storage medium of claim 1 , wherein the query syntax expresses a set of tasks in terms of data flow. 3. The computer readable storage medium of claim 2 , wherein at least two of the set of tasks are able to be scheduled for concurrent execution. 4. The computer readable storage medium of claim 1 , wherein the runtime agnostic representation expresses a set of tasks defined by the query syntax in terms of data flow. 5. The computer readable storage medium of claim 1 , wherein the runtime agnostic representation forms a directed acyclic graph (DAG). 6. The computer readable storage medium of claim 1 , wherein the dynamically selected execution runtime is one of a set of two or more execution runtimes in the computer system. 7. The computer readable storage medium of claim 1 , wherein the native programming language is C++. 8. The computer readable storage medium of claim 1 , wherein the dynamically selected execution runtime corresponds to one of a single machine, a cluster of machines, or a cloud of machines. 9. The computer readable storage medium of claim 1 , wherein the computer system includes one of a single machine, a cluster of machines, or a cloud of machines. 10. A computer readable storage medium, which does not include transitory propagating signals, storing computer-executable instructions that, when executed by a computer system, cause the computer system to perform a method comprising: extracting implicit parallelism in a query in user code written in a native programming language; representing the implicit parallelism as a runtime representation including a set of tasks and a set of interactions of the set of tasks without explicit reference to programming features or constructs of any particular execution runtime; dynamically selecting an execution runtime from at least two execution runtimes for executing the runtime representation that is executable with the dynamically selected execution runtime; and delineating a programming model for the user code from the at least two execution runtimes to permit the user code to target different execution runtimes of the at least two execution runtimes. 11. The computer readable storage medium of claim 10 , wherein the query expresses the set of tasks in terms of data flow. 12. The computer readable storage medium of claim 10 , further comprising: representing the implicit parallelism as a runtime agnostic representation that forms a directed acyclic graph (DAG). 13. The computer readable storage medium of claim 10 , wherein the dynamically selected execution runtime is one of a set of two or more execution runtimes in the computer system. 14. The computer readable storage medium of claim 10 , wherein the native programming language is C++. 15. The computer readable storage medium of claim 10 , wherein the dynamically selected execution runtime corresponds to one of a single machine, a cluster of machines, or a cloud of machines. 16. The computer readable storage medium of claim 10 , wherein the computer system includes one of a single machine, a cluster of machines, or a cloud of machines. 17. A method performed by a computer system, the method comprising: identifying a query syntax in user code that expresses a set of tasks in terms of data flow, the user code written in a native programming language; translating the query syntax into a runtime agnostic representation of the user code that expresses tasks and the interactions of tasks without explicit reference to programming features or constructs of any particular execution runtime; dynamically selecting an execution runtime from at least two execution runtimes in the computer system for executing the runtime agnostic representation that is executable with the dynamically selected execution runtime, the runtime agnostic representation forming a directed acyclic graph (DAG); and delineating a programming model for the user code from the at least two execution runtimes to permit the user code to target different execution runtimes of the at least two execution runtimes. 18. The method of claim 17 , wherein the native programming language is C++. 19. The method of claim 17 , wherein the dynamically selected execution runtime corresponds to one of a single machine, a cluster of machines, or a cloud of machines. 20. The method of claim 17 , wherein the computer system includes a single machine, a cluster of machines, or a cloud of machines.

Assignees

Inventors

Classifications

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • G06F8/456Primary

    Parallelism detection · CPC title

  • Task decomposition · CPC title

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · 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 US9600250B2 cover?
An execution environment in a computer system supports a declarative programming model where user code is written with a query syntax in a native programming language to express inherent parallelism in terms of data flow. The execution environment translates queries in the user code into a runtime agnostic representation and dynamically selects an execution runtime for executing the runtime agn…
Who is the assignee on this patent?
Varadarajan Krishnan, Chu Michael L, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/456. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 21 2017 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).