IP Library Granted Patent US 8,418,137
Granted Patent B2
US 8,418,137 · App. 11/455,152 · Granted Apr 9, 2013

Adaptive evolutionary computer software products

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 8,418,137
App. No.
11/455,152
Granted
Apr 9, 2013
Kind
B2
Abstract

The invention concerns a method for automatically adapting a computer program product to an environment, the computer program product comprising executable parts and data parts, the method comprising the steps of configuring the computer program product for the environment and executing the software in the environment. Furthermore the method comprises the steps of observing effects of the execution, i.e. metering the behavior, of the executable parts, analyzing the inter-relation of the observed effects with the software, and modifying executable parts based on rules in order to reduce undesirable observed effects like in-efficiency or failure. The present invention relates also to the automatically adapting computer program product, and a method for manufacturing the automatically adapting computer program product.

Claims (50)

1. A method for automatically adapting a computer program product to an environment, the computer program product comprising executable parts and data parts, the method comprising:

configuring the computer program product for the environment and executing a computer program comprised by the computer program product in the environment;

observing effects of the execution by metering a behavior of the executable parts;

analyzing the inter-relation of the observed effects with the computer program product;

modifying executable parts based on rules in order to reduce undesirable observed effects comprising one or more of inefficiency and failure; and

making modifications or states of the code part persistent wherein the observed effect is a repetitive behavior and the modifying comprises adding a memorization for the repetitive behavior.

2. The method according to claim 1 , wherein the observed effect further includes a detection of dead code and the modifying comprises the elimination of the identified dead code.

3. The method according to claim 1 , wherein the observed effect further includes a detection of a tight relationship between two parts and the modifying comprises re-structuring the two parts together by one or more of placing an interacting object within the same component, aggregating foreign called methods, and placing variables in the appropriate scope.

4. The method according to claim 1 , wherein the observed effect further comprises a partial evaluation x and the modifying comprises y, a more efficient partial evaluation with f_x with f(x,y) =f_x (y).

5. The method according to claim 1 , wherein the observing, analyzing and adapting is performed while executing the computer program, where the adapting is performed in the background.

6. The method according to claim 1 , wherein previous versions are compared with a current version with respect to the undesirable effects and the functional equivalence.

7. A computer program product stored in persistent storage and automatically adapting to an environment, the computer program product comprising:

executable parts and data parts;

a configuration component that configures the computer program product for the environment for executing the computer program product in the environment;

an observation component that observes effects of the execution, including the behavior of the executable parts;

an inference component that analyzes an inter-relation of the observed effects with the computer program product; a restructuring component that modifies executable parts based on rules in order to reduce undesirable effects comprising one or more of inefficiency and failure; and

a revision manager component (RM) that makes modifications or states of the code part persistent;

wherein the observed effect comprises a detection of a tight relationship between two parts and the modifying comprises re-structuring the two parts together by placing an interacting object within the same component.

8. The computer program product according to claim 7 , further comprising:

a programming component that implements a method for automatically adapting a computer program to an environment, the computer program product comprising executable parts and data parts, the method comprising:

configuring the computer program product for the environment and executing a computer program comprised by the computer program product in the environment;

observing effects of the execution by metering a behavior of the executable parts;

analyzing the inter-relation of the observed effects with the computer program; and

modifying executable parts based on rules in order to reduce undesirable observed effects comprising one or more of inefficiency and failure.

9. A method for manufacturing an automatically adapting computer program product, wherein the method comprises:

furnishing the executable part by integrating an observation component that observes effects of the execution, including the behavior of the executable parts;

furnishing the executable part via an inference component that analyzes the inter-relation of the observed effects with the computer program product; and

furnishing the executable part via a restructuring component that modifies executable parts based on rules in order to reduce undesirable effects;

the computer program product comprising:

executable parts and data parts;

a configuration component for configuring the computer program product for the environment for executing the computer program product in the environment;

an observation component for observing the behavior of the executable parts;

an inference component for analyzing the inter-relation of the observed effects with the computer program product;

a restructuring component for modifying executable parts based on rules in order to reduce undesirable effects; and

a revision manager component (RM) that makes modifications or states of the code part persistent;

wherein the observed effect comprises a detection of a tight relationship between two parts and the modifying comprises re-structuring the two parts together by placing an interacting object within the same component.

10. The method according to claim 9 , wherein a developer is notified about at least one of the observing, the analyzing and the adapting.

11. A method of automatically adapting a computer program product to an environment, the computer program product comprising executable parts and data parts, the method comprising:

configuring the computer program product for the environment and executing a computer program comprised by the computer program product in the environment;

observing effects of the execution;

metering a behavior of the executable parts;

analyzing the inter-relation of the observed effects with the computer program;

modifying executable parts based on rules in order to reduce undesirable observed effects comprising at least one of inefficiency and failure;

wherein the observed effect comprises a detection of a tight relationship between two parts and the modifying comprises re-structuring the two parts together by placing an interacting object within the same component.

12. The method according to claim 11 , wherein the observed effect further comprises a detection of dead code and the modifying comprises the elimination of the identified dead code.

13. The method according to claim 11 , wherein the observed effect further comprises a repetitive behavior and the modifying comprises adding a memorization for the repetitive behavior.

14. The method according to claim 11 , wherein the observed effect further comprises a partial evaluation x and the modifying comprises y, a more efficient partial evaluation with f_x with f(x,y) =f_x (y).

15. The method according to claim 11 , wherein the observing, analyzing and adapting is performed while executing the computer program, where the adapting is performed in the background.

16. The method according to claim 11 , further comprising making modifications or states of the code part persistent.

17. The method according to claim 11 , and wherein re-structuring the two parts together further comprises one or more of, aggregating foreign called methods, and placing variables in the appropriate scope.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2020
From: SOUND VIEW INNOVATIONS, LLC
To: PIECE FUTURE PTE LTD
Reel/Frame 052519/0440 →
RELEASE OF SECURITY INTEREST Recorded Sep 4, 2014
From: CREDIT SUISSE AG
To: ALCATEL LUCENT (SUCCESSOR IN INTEREST TO ALCATEL-LUCENT N.V.)
Reel/Frame 033687/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2014
From: ALCATEL LUCENT
To: SOUND VIEW INNOVATIONS, LLC
Reel/Frame 033416/0763 →
SECURITY AGREEMENT Recorded Jan 30, 2013
From: ALCATEL LUCENT N.V.
To: CREDIT SUISSE AG
Reel/Frame 029737/0641 →
CHANGE OF NAME Recorded Jan 11, 2013
From: ALCATEL
To: ALCATEL LUCENT
Reel/Frame 029613/0074 →