Reactive expression generation and optimization

US9400638B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9400638-B2
Application numberUS-201113291475-A
CountryUS
Kind codeB2
Filing dateNov 8, 2011
Priority dateNov 8, 2011
Publication dateJul 26, 2016
Grant dateJul 26, 2016

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.

Reactive programming is facilitated. Reactive expressions can be generated automatically from non-reactive expressions or in other words standard expressions. Additionally or alternatively, reactive expressions can be optimized in a number of different ways to minimize computational work.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of facilitating reactive programming, comprising: employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts: receiving a non-reactive expression; producing a reactive expression from the non-reactive expression, wherein the reactive expression is a reactive version of the non-reactive expression; and generating an optimized version of the reactive expression that reduces computational work based on one or more input sequences specified by the reactive expression and frequency at which the one or more input sequences produce elements. 2. The method of claim 1 , generating the optimized version further comprises eliminating multiple subscriptions to a single source. 3. The method of claim 1 , generating the optimized version further comprises applying one or more domain-specific optimizations. 4. The method of claim 1 , generating the optimized version further comprises generating code that restricts reevaluation of the reactive expression to instances where an input sequence value changes from a previous value. 5. The method of claim 1 further comprises generating the optimized version of the reactive expression dynamically at run time. 6. The method of claim 5 further comprises generating the optimized version of the reactive expression as a function of a predetermined threshold. 7. The method of claim 1 , generating the optimized version further comprises assigning shortest path length in in a tree representation of the expression to an input sequence of the one or more input sequences with highest frequency of element production. 8. A system that facilitates reactive programming, 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 automatically generate a reactive expression from a non-reactive expression, wherein the reactive expression is a reactive version of the non-reactive expression; and a second component configured to optimize the reactive expression to reduce computational work based on one or more input sequences specified by the reactive expression and a frequency at which the one or more input sequences produce elements. 9. The system of claim 8 , the second component is further configured to alter the reactive expression to limit reevaluation of at least parts of the reactive expression. 10. The system of claim 8 , the second component is further configured to alter the reactive expression to optimize for a particular domain. 11. The system of claim 8 , the second component is further configured to filter out identical contiguous values. 12. The system of claim 8 further comprises a third component external to the first component configured to rewrite the reactive expression based on a domain. 13. A method of facilitating reactive programming, comprising: employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts automatically: receiving a non-reactive expression; generating a reactive expression from the non-reactive expression, wherein the reactive expression is a reactive version of the non-reactive expression; and optimizing the reactive expression to reduce computational work based on one or more input sequences specified by the reactive expression and frequency at which the one or more input sequences produce elements. 14. The method of claim 13 , optimizing the reactive expression further comprises eliminating multiple subscriptions to a single source. 15. The method of claim 13 , optimizing the reactive expression further comprises restricting re-computation of the reactive expression to instances where an input sequence value changes from a previous value. 16. The method of claim 13 , optimizing the reactive expression further comprises re-writing the reactive expression based on domain specific information. 17. A computer-readable storage medium having instructions stored thereon that enable at least one processor to perform a method upon execution of the instructions, the method comprising: receiving a non-reactive expression; producing a reactive expression automatically from the non-reactive expression, wherein the reactive expression is a reactive version of the non-reactive expression; and generating an optimized version of the reactive expression automatically that reduces computational work based on one or more input sequences specified by the reactive expression and frequency at which the one or more input sequences produce elements. 18. The computer-readable storage medium of claim 17 , the method further comprises eliminating multiple subscriptions to duplicate input sequences from the reactive expression. 19. The computer-readable storage medium of claim 17 , the method further comprises generating the optimized version of the reactive expression automatically based on domain specific information. 20. The computer-readable storage medium of claim 17 , generating the optimized version further comprises assigning shortest path length in in a tree representation of the expression to an input sequence of the one or more input sequences with highest frequency of element production.

Assignees

Inventors

Classifications

  • of spreadsheets (form-filling G06F40/174) · CPC title

  • Runtime code conversion or optimisation · CPC title

  • G06F8/30Primary

    Creation or generation of source code · CPC title

  • Transformation of program code · CPC title

  • Physics · mapped topic

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 US9400638B2 cover?
Reactive programming is facilitated. Reactive expressions can be generated automatically from non-reactive expressions or in other words standard expressions. Additionally or alternatively, reactive expressions can be optimized in a number of different ways to minimize computational work.
Who is the assignee on this patent?
De Smet Bart, Meijer Henricus Johannes Maria, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/30. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 26 2016 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).