IP Library Granted Patent US 7,340,724
Granted Patent B2
US 7,340,724 · App. 10/642,360 · Granted Mar 4, 2008

Evaluating expressions in a software environment

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 7,340,724
App. No.
10/642,360
Granted
Mar 4, 2008
Kind
B2
Abstract

Code for a program is received by a compiler (or other entity). The code includes an expression for a variable and a marker that specifies when the expressions should be evaluated during execution of the program. Example markers can indicate that an expression should be evaluated immediately, once or always. Additional functionality is provided to the code in order to evaluate the expression at the specified time during execution of the program. If the expression is to be evaluated always, then the expression will likely be dependent on a item that can change. Functionality is provided that evaluates the expression when the item changes so that the variable can be updated.

Claims (88)

1. A method to provide for evaluating code expressions, comprising:

receiving code for a program, said code includes one or more expressions and one or more markers that specify one or more times when said one or more expressions should be evaluated during execution of said program; and

automatically providing additional functionality to said code for said program, said additional functionality evaluates said one or more expressions during execution of said program at said one or more times specified by said one or more markers.

2. A method according to claim 1 , wherein:

said one or more markers specify when said one or more expressions should be evaluated during execution of said program independent from a context of where said expressions are used.

3. A method according to claim 1 , wherein:

said markers that specify one or more times further indicate that a particular expression should be evaluated immediately, once or always.

4. A method according to claim 3 , wherein:

failure of a marker to indicate that a particular expression should be evaluated immediately or once defaults to an indication indicating that said particular expression should be evaluated always.

5. A method according to claim 1 , wherein:

said one or more expressions are constraints for variables; and

said step of automatically providing additional functionality to said code includes adding code that creates an object for each constraint, adds functions to said object that set said variables, and adds functions that set dependencies for said expressions.

6. A method according to claim 1 , wherein:

said code for said program is XML code.

7. A method according to claim 1 , wherein:

said step of automatically providing additional functionality to said code includes compiling said code.

8. A method according to claim 1 , further comprising:

receiving a request for content via a network;

transmitting said code with said additional functionality to a client via said network; and

executing said code with said additional functionality at said client.

9. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method to provide for evaluating expressions, said method comprising:

accessing code for a program, said code includes one or more expressions and one or more markers that specify one or more times when said one or more expressions should be evaluated during execution of said program; and

automatically providing for an evaluation of said one or more expressions during execution of said program at said one or more times specified by said one or more markers.

10. One or more processor readable storage devices according to claim 9 , wherein:

said one or more markers specify when said one or more expressions should be evaluated during execution of said program independent from a context of where said expressions are used.

11. One or more processor readable storage devices according to claim 9 , wherein:

said markers that specify one or more times further indicate that a particular expression should be evaluated immediately, once or always.

12. One or more processor readable storage devices according to claim 9 , wherein:

said step of automatically providing for an evaluation includes compiling said code.

13. A method to provide for evaluating code expressions, comprising:

receiving code for a program, said code includes one or more expressions and one or more markers that specify one or more times when said one or more expressions should be evaluated during execution of said program; and

evaluating said one or more expressions during execution of said program at said one or more times specified by said one or more markers.

14. A method according to claim 13 , wherein:

said one or more markers specify when said one or more expressions should be evaluated during execution of said program independent from a context of where said expressions are used.

15. A method according to claim 13 , wherein:

said markers that specify one or more times further indicate that a particular expression should be evaluated immediately, once or always.

16. A method according to claim 13 , wherein:

said code for said program is XML source code.

17. A method according to claim 13 , wherein:

said code for said program is object code.

18. A method to provide for evaluating code expressions, comprising:

accessing code tat includes an expression defining a first variable and an indicator for said expression, said expression is dependent on a changeable item within said expression, said indicator specifies one or more times when said expression should be evaluated; and

compiling said code, said step of compiling said code adds additional functionality to said code, said additional functionality evaluates said expression when said changeable item within said expression changes during execution based on said indicator and updates said first variable.

19. A method according to claim 18 , wherein:

said expression is part of a constraint for said first variable;

said step of compiling includes creating an object for said constraint, adding a first function to said object that sets said first variable, determining dependency of said expression and adding a second function for said dependency.

20. A method according to claim 19 , wherein:

said additional functionality includes code that adds said first function to an object for said first variable and code that provides a pointer to said first function to an object for said changeable item to be called by said object for said changeable item when said changeable item changes.

21. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method to provide for evaluation of expressions, said processor readable code comprising:

preexisting functionality that evaluates expressions when a dependency changes and updates a variable based on said expression;

code that accesses first code, said first code includes a first expression defining a first variable and an indicator for said expression, said first expression is dependent on a first dependency within said first expression, said indicator specifies one or more times said expression should be evaluated when said first dependency changes; and

code that combines said preexisting functionality with said first code so that when said first code is executed said first variable is updated by said first expression when said first dependency within said first expression changes.

22. A method according to claim 21 , wherein:

said first expression is part of a constraint for said first variable; and

said code that combines said preexisting functionality with said first code creates an object for said constraint, adds a first function to said object that sets said first variable, determines dependency of said first expression and adds a second function for said dependency to said object.

23. A method according to claim 21 , wherein:

said preexisting functionality includes code that adds said first function to an object for said first variable and code that provides a pointer to said first function to an object for said first dependency to be called by said object for said first dependency when said first dependency changes.

24. A method to provide for evaluating code expressions, comprising:

receiving code that includes an expression defining a first variable and an indicator for said expression, said expression is dependent on a changeable item within said expression, said indicator specifies one or more times when said expression should be evaluated; and

automatically providing additional functionality to said code, said additional functionality evaluates said expression when said changeable item within said expression changes during execution based on said indicator and updates said first variable.

25. A method according to claim 24 , wherein:

said expression is part of a constraint for said first variable; and

said step of automatically providing includes creating an object for said constraint, adding a first function to said object that sets said first variable, determining dependency of said expression and adding a second function for said dependency to said object.

26. A method according to claim 25 , wherein:

said additional functionality includes code that adds said first function to an object for said first variable and code tat provides a pointer to said first function to an object for said changeable item to be called by said object for said changeable item when said changeable item changes.

27. A method according to claim 24 , further comprising:

requesting said code by an Internet client;

transmitting said code with said additional functionality to said Internet client after said step of automatically providing; and

executing said code with said additional functionality using said Internet client.

28. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method to provide for evaluating expressions, said method comprising:

accessing code that includes an expression defining a first variable and an indicator for said expression, said expression is dependent on a changeable item within said expression, said indicator specifies one or more times when said expression should be evaluated; and

automatically providing preexisting additional functionality to said code, said preexisting additional functionality evaluates said expression when said changeable item within said expression changes during execution based on said indicator and updates said first variable.

29. One or more processor readable storage devices according to claim 28 , wherein:

said expression is part of a constraint for said first variable; and

said step of automatically providing includes creating an object for said constraint, adding a first function to said object that sets said first variable, determining dependency of said expression and adding a second function for said dependency to said object.

30. One or more processor readable storage devices according to claim 29 , wherein:

said additional functionality includes code that adds said first function to an object for said first variable and code that provides a pointer to said first function to an object for said changeable item to be called by said object for said changeable item when said changeable item changes.

31. One or more processor readable storage devices according to claim 28 , wherein:

said preexisting additional functionality prevents circular evaluation.

32. An apparatus that provides for evaluation of code expressions, comprising:

a processor readable storage device; and

one or more processors in communication with said processor readable storage device, said one or more processors perform a method comprising the steps of:

accessing code that includes an expression defining a first variable and an indicator for said expression, said expression is dependent on a changeable item within said expression, said indicator specifies one or more times when said expression should be evaluated, and

automatically providing preexisting additional functionality to said code, said preexisting additional functionality evaluates said expression when said changeable item within said expression changes during execution based on said indicator and updates said first variable.

33. An apparatus according to claim 32 , wherein:

said expression is part of a constraint for said first variable;

said step of automatically providing includes creating an object for said constraint, adding a first function to said object that sets said first variable, determining dependency of said expression and adding a second function for said dependency to said object; and

said additional functionality includes code that adds said first function to an object for said first variable and code that provides a pointer to said first function to an object for said changeable item to be called by said object for said changeable item when said changeable item changes.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2013
From: LASZLO SYSTEMS, INC.
To: INTEL CORPORATION
Reel/Frame 029748/0430 →
SECURITY INTEREST, LIEN AND CHARGE Recorded Dec 16, 2011
From: MMV FINANCE, INC.
To: WI HARPER FUND VI LTD.
Reel/Frame 027397/0715 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2011
From: WI HARPER FUND VI LTD.
To: LASZLO SYSEMS, INC.
Reel/Frame 027401/0319 →
SECURITY INTEREST, LIEN AND CHARGE Recorded Dec 28, 2009
From: LASZLO SYSTEMS, INC.
To: MMV FINANCE INC.
Reel/Frame 023708/0119 →
RELEASE OF SECURITY INTEREST Recorded Dec 9, 2009
From: SOFINNOVA VENTURE PRINCIPALS V, LP; SOFINNOVA VENTURE PARTNERS V, LP; SOFINNOVA VENTURE AFFILIATES V, LP; GENERAL CATALYST GROUP II, L.P.; GC ENTREPRENEURS FUND II, L.P.; MITSUI & CO. VENTURE PARTNERS II, L.P.
To: LASZLO SYSTEMS, INC.
Reel/Frame 023627/0001 →
SECURITY AGREEMENT Recorded Mar 10, 2006
From: LASZLO SYSTEMS, INC.
To: GENERAL CATALYST GROUP II, L.P.; GC ENTREPRENEURS FUND II, L.P.; MITSUI & CO. VENTURE PARTNERS II, L.P.; SOFINNOVA VENTURE PARTNERS V, LP; SOFINNOVA VENTURE AFFILIATES V, LP; SOFINNOVA VENTURE PRINCIPALS V, LP
Reel/Frame 017286/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2004
From: WOLFF, ADAM G.; TEMKIN, DAVID T.; STEELE, OLIVER W.; WITHINGTON, P. TUCKER; MINSKY, HENRY B.
To: LASZLO SYSTEMS, INC.
Reel/Frame 014872/0280 →